-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add CI/testing to examples #12491
Add CI/testing to examples #12491
Conversation
@dio @lizan ive created this PR to add the example tests i created, and hoping it would trigger in ci etc i added a separate job in azure pipelines but that doesnt seem to have worked. im wondering if that is the best way to trigger this in ci - and if so - whether something needs to be added in azure to allow this job to run |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run |
Commenter does not have sufficient privileges for PR 12491 in repo envoyproxy/envoy |
@lizan would you mind triggering azure. I need to see if the tests are passing |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
80c89e4
to
6fbd9db
Compare
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
btw please dont force push |
sorry - i figured its ok on a |
@lizan i have updated the i have tidied the script, and dewipped the PR - i think it should be ready for review i have left the pipeline where it is for now so that tests are triggered/immediately. once the script itself has approval, ill move it. im wondering if the test for configs in one concern - which i think is an issue with the example itself or perhaps envoy is that while the you can see the |
@lizan i have split the tests into i have also added the helper scripts mentioned, and made some small improvements to the error handling - partly to compensate for moving the tests out of the scope of the error handling in verify_examples now accepts a glob arg so you can run it with individual tests, and the tests should be runnable directly from the example folders also this script probs needswork - but im not sure about whether the other test - the one for build configs - needs to be separated or at least runnable separately i ran the mysql example locally and can confirm that the protocol errors occur outside of these tests when run manually once we are certain of the format of the tests i can write a small dev doc - preferrably in a subsequent pr |
...also - is it ok to rebase/force push as i think the conflict is blocking azure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, the script looks good.
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
8443b8f
to
03c89e4
Compare
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
The example tests have now been moved to after the docker build, and i think are using the correct images. Im wondering if publishing the docker images should be moved after these tests. If these tests fail - only on master, for some reason - you would not find out until after the images had been published |
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
cc @envoyproxy/windows-dev might be interesting to get Windows coverage of these as well for more confidence etc. |
@lizan are there any further changes required to land this ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, this looks great.
.azure-pipelines/pipelines.yml
Outdated
- bash: | | ||
docker load < $(Build.StagingDirectory)/docker/envoy-docker-images.tar.xz | ||
images=($(docker image list --format "{{.Repository}}")) | ||
tags=($(docker image list --format "{{.Tag}}")) | ||
for i in "${!images[@]}"; do | ||
if [[ "${images[i]}" =~ "envoy" ]]; then | ||
docker tag ${images[$i]}:${tags[$i]} ${images[$i]}:latest | ||
fi | ||
done | ||
docker images | ||
sudo apt-get update -y | ||
sudo apt-get install -y -qq --no-install-recommends redis-tools | ||
export DOCKER_NO_PULL=1 | ||
ci/verify_examples.sh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you split this to a bash file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
moved to do_ci.sh
- lmk if you want it somewhere else
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
Signed-off-by: Ryan Northey <ryan@synca.io>
@lizan should be ready for review again |
Commit Message: Add CI/testing to examples
Additional Description:
This PR incorporates the tests that i created for the envoy examples (originally here: https://github.com/phlax/envoy-examples)
It also adds a test to ensure that example configs have been added to the examples
BUILD
config (ref: #12256 (comment))the tests are documented in #12874
original description - no longer accurate...
the tests are run inside a
docker-in-docker
container to ensure a clean environment, and to allow docker system pruning without affecting the hosts container setup.The container user's
umask
is set to027
to catch any potential permissions problems related to running envoy as non-root in containersThe tests can be run locally with
./ci/verify_examples.sh
from the root of the envoy repo. This will mount the current directory as the envoy sourceAlternatively you can do eg the following to test a different branch/source:
In this case the build config test is skipped
Risk Level: low
Testing: yes
Docs Changes:
Release Notes:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]