- Add e2e tests
- Use '=' for traffic and tag assignment instead of ':'
- Use --tag and --untag flags for tagging traffic targets
- Use --traffic flag for setting traffic portions
- Allow --traffic portion to either take revisionName or tagName
- Uses @latest identifier for referencing latest revision of service
- Dont throw error if requested revision=tag pair is same
- Support having multiple tags for a revision
- creates a new target in traffic block if revision present in traffic block with new tag requested
- creates N new targets in traffic block if revision absent in traffic block with Nxnew tags requested
- Ensure updating tag of @latest requires --untag flag
- streamline updating tag for latestReadyRevision
- adds respective tests
- adds tests for ensuring given traffic sum to 100 on CLI and fail fast
- Add note about preference of order in case where tagOfOneRevision == revisionOfAnother,
first tags are checked and assigned traffic if any, as tags are supposed to be
unique in traffic block and should be referenced in such scenario.
- Remove the examples from flag description, moves it to service update command example section
- Pass only traffic block to compute trffic, makes it better to consume.
- Cover more error cases for invalid value format for assignments, covers a=b=c, a=, =b, or variants of them
- Separate and improves the error messages
- Add unit tests for traffic computing
- Add sanity checks in dedicated function verifyInputSanity
- traffic perents should sum to 100
- individual percent should be in 0-100
- repetition of @latest or tagName or revisionRef is disallowed
- Verify traffic percents sum to 100 on client side and fail fast
- Add e2e tests for traffic splitting
- create and update service, assign tags and set traffic to make an existing state
- run the scenario on existing state of service
- form the desired state traffic block
- extract the traffic block and form the traffic block struct actual state
- assert.DeepEqual actual and desired traffic blocks
- Use logic to generate service name in the same way as namespace, use different service name per test case
- Run e2e test for traffic splitting in parallel
- Use timeout duration of 30m for e2e tests, use timeout parameter for go_test_e2e library function
- Use tagName in flag description of --untag, avoiding conflict with --tag flag
- Update CHANGELOG
1. creates a namespace 'kne2etests' (default name, change with env KN_E2E_NAMESPACE)
2. executes kn commands as per Basic workflow doc in said namespace
3. verifies each command's output
4. deletes the 'kne2etests' namespace
* fix(e2e): Use build.sh for compiling
Fixes#174.
* Update test/e2e-tests.sh
Co-Authored-By: Adriano Cunha <35786489+adrcunha@users.noreply.github.com>
* Tests running simple workflow in e2e
Fixes#104
* Adds e2e test for --force flag while creating service
also removes http:// before the registry name
* Removes the update command
* Adds the service update command back to e2e tests
also increases the sleep time between create and get
* Stub in an integration test
This just calls `kn service list` and verifies it doesn't have a
non-zero exit status.
* Build the client in pre_integration_tests
* Need to explicitly build the `kn` client
As opposed to just building the entire repo. That didn't actually
stick a `kn` binary in the root.
* Address code review feedback
Build the client in e2e-tests.sh instead of presubmit-tests.sh, fix a
couple copy/paste places that referred to eventing, remove unnecessary
knative_teardown function.
* Don't attempt to build kn twice
* Turns out pre_integration_tests() is the easiest way to build kn
We don't have any other good hooks at the moment to do something in
`e2e-tests.sh` that runs only once before the test cluster gets setup.
* Update test-infra to use the new cluster_setup function
This updates the version of test-infra to use the new cluster_setup
function added in https://github.com/knative/test-infra/pull/667
It simplifies our e2e setup logic into one place instead of being
split over presubmit-tests.sh and e2e-tests.sh
* Update vendored test-infra as well
* We have to explicitly tell CI to use the vendored modules
* Be a bit more descriptive in the stubbed out integration test