-
Notifications
You must be signed in to change notification settings - Fork 53
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
Refactor ci #2137
Refactor ci #2137
Conversation
Signed-off-by: David Cassany <dcassany@suse.com>
Signed-off-by: David Cassany <dcassany@suse.com>
Signed-off-by: David Cassany <dcassany@suse.com>
Signed-off-by: David Cassany <dcassany@suse.com>
Signed-off-by: David Cassany <dcassany@suse.com>
a32ef58
to
1215a59
Compare
Signed-off-by: David Cassany <dcassany@suse.com>
1215a59
to
edf8382
Compare
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.
This PR allows to run the upgrade test locally too. In fact, that's the thing, if it is runnable locally without having to configure infraestructure, it should also be possible to run it in GHA without needing external services like a registry.
In my env the following sequences passes:
make build && make build-os
make test-upgrade
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
ref: "${{ github.event.pull_request.head.sha }}" | ||
- run: | | ||
git fetch --prune --unshallow | ||
- name: Log in to ghcr.io | ||
uses: docker/login-action@v3 | ||
- name: Define version |
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.
Use version identifier and tag base on a hash from certain paths. This allows to re-use cache in case of PRs that are only touching parts that do not affect the build (e.g. tests code, workflows, etc.)
@@ -0,0 +1,78 @@ | |||
#!/bin/bash |
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.
This is a script that handles the local registry instance with a variant of docker run registry:2
. Challenges here were:
- Need to compute a valid IP of the host that is visible from the qemu VM in "user mode" network setup.
- Need to push to an insecure registry (I could not figure out how work around that, a self signed certificate would still be insecure unless the host is configured to trust it)
pushd "${ROOT_PATH}" > /dev/null | ||
go run ${ginkgo} ${ginkgo_args} ./tests/wait-active | ||
go run ${ginkgo} ${ginkgo_args} ./tests/upgrade -- \ | ||
--toolkit-image=docker://${reg_url}/${toolkit_img} --upgrade-image=docker://${reg_url}/${upgrade_img} |
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.
This scripts is essentially existing because it was so cumbersome to compose this arguments from variables in the Makefile directly
@@ -14,31 +17,47 @@ concurrency: | |||
jobs: | |||
build-os: | |||
permissions: | |||
packages: write |
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.
No more packages: write
in this workflow. Only contents: read
.
@@ -5,6 +5,7 @@ name: Cleanup caches by a branch | |||
on: | |||
pull_request_target: | |||
types: | |||
- synchronize |
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.
To remove unused cache on pushing commits to an opened PR
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.
Great work. Left a couple of nitpicking comments, but nothing essential.
LGTM
67bbc24
to
f7c4f7f
Compare
Signed-off-by: David Cassany <dcassany@suse.com>
f7c4f7f
to
dbb8983
Compare
* Refactor CI to use a local registry * Cache image and fetch image tarballs * Composite fetch images * Push to insecure registry with podman * Simplify workflow runs * Improve cache cleanup * Improve ip detection Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 644cdc7)
* Refactor CI to use a local registry * Cache image and fetch image tarballs * Composite fetch images * Push to insecure registry with podman * Simplify workflow runs * Improve cache cleanup * Improve ip detection Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 644cdc7)
* Refactor CI to use a local registry * Cache image and fetch image tarballs * Composite fetch images * Push to insecure registry with podman * Simplify workflow runs * Improve cache cleanup * Improve ip detection Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 644cdc7)
* Fix stackable sources for build-iso (#2061) * Fix stackable sources for build-iso * Move syncFunc as a parameter of DumpSource Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 22baf14) * Fix error return Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit f9934d7) * Change default root password Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 46a88e1) * Allow key pair of ssh connection in tests Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit a5f526d) * Set legacy password for upgrade test Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 6f0b28e) * Allow insecure registries (#2131) * Allow skipping TLS verification on registries Signed-off-by: David Cassany <dcassany@suse.com> * Improve error logging Signed-off-by: David Cassany <dcassany@suse.com> * Fix flag default value Signed-off-by: David Cassany <dcassany@suse.com> * Fix image extractor mock and use default TLS verification for tests Signed-off-by: David Cassany <dcassany@suse.com> --------- Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 22996ef) * Fix permissions * Set token to explicit content read permissions (cherry picked from commit 3d657c9) * Move permissions at top level (cherry picked from commit 8b8ae12) * Fix workflows, permissions at top level (cherry picked from commit d3da1cf) * Leftover from d3da1cf (cherry picked from commit 3206436) * Fix nested permissions definition Top level permissions can't be increased for specific jobs, hence setting the permission on each specific job on workflows that require more fine grain approach. In addition it removes the pull-request permission as this is mostly required for PR decorators, read/write labels, etc. (cherry picked from commit 1a0903a) * Refactor ci (#2137) * Refactor CI to use a local registry * Cache image and fetch image tarballs * Composite fetch images * Push to insecure registry with podman * Simplify workflow runs * Improve cache cleanup * Improve ip detection Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 644cdc7) * Fix cache cleaning for PRs and main pushes (#2144) * Fix cache cleaning for PRs and main pushes * Update .github/workflows/cache-cleanup.yaml Co-authored-by: Francesco Giudici <francesco.giudici@gmail.com> Signed-off-by: David Cassany Viladomat <dcassany@suse.com> (cherry picked from commit f54f683) * Remove unused steps in workflow Signed-off-by: David Cassany <dcassany@suse.com> (cherry picked from commit 51a85a7) (cherry picked from commit 9f8d14fea58c2e458f8840d274422352f0b0b1c2) * Do not fetch upstream go dependencies Signed-off-by: David Cassany <dcassany@suse.com> * Update cmd/cloud-init.go Missing err Co-authored-by: Francesco Giudici <francesco.giudici@gmail.com> Signed-off-by: David Cassany Viladomat <dcassany@suse.com> --------- Signed-off-by: David Cassany <dcassany@suse.com> Signed-off-by: David Cassany Viladomat <dcassany@suse.com> Co-authored-by: Francesco Giudici <francesco.giudici@gmail.com>
Fixes #2132