-
Notifications
You must be signed in to change notification settings - Fork 708
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
Migrate prerelease flow to GHA #5590
Conversation
Signed-off-by: Jesús Benito Calzada <[email protected]>
✅ Deploy Preview for kubeapps-dev canceled.Built without sensitive environment variables
|
Signed-off-by: Jesús Benito Calzada <[email protected]>
Thanks for this work. It simplifies the process and improves the experience and readability. |
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.
+1, thanks!
Please add a new line at the end of each file, this is the convention we are using in the project. You can configure your IDE to do so: https://stackoverflow.com/questions/16761227/how-to-make-intellij-idea-insert-a-new-line-at-every-end-of-file
CI_BOT_GPG: "80B6EB16B1328FB18DFF2A073EBA68F3347E319D" | ||
# DEBUG_MODE allows to activate some SSH debugging steps, and modify the verbosity level of some scripts (eg. e2e-tests.sh) | ||
DEBUG_MODE: "true" | ||
# FIXME: DEV_MODE is used to enable dev mode, used to activate several hacks along the code: |
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 the same convention for TODOs, this way, it easier to look for them in the future
IMG_MODIFIER: "-ci-gha" | ||
IMG_PREFIX: "kubeapps/" | ||
# We use IMG_PREFIX_FOR_FORKS for development purposes, it's used when the workflow is run from a fork of the kubeapps repo | ||
IMG_PREFIX_FOR_FORKS: "beni0888/" |
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.
Leftover? Or is it still useful while working on the GHA?
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.
Well, it is useful anytime when someone needs to develop the pipeline and push docker images to an alternative Docker Hub workspace. When the pipeline is triggered inside a fork, it will use the value from this variable. At this moment it contains my personal workspace, but it can be changed to whatever is needed.
# Note that the max old space setting is per worker, so running the tests | ||
# with 4 workers on a 4Gb (free plan) needs 1Gb of max old space. Forcing | ||
# garbage collection to start earlier with 512M per worker. | ||
NODE_OPTIONS: "--max-old-space-size=512" |
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.
Is this assumption still true for GHA runners?
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 be honest, I don't know 😅 I copy&pasted it from the CircleCI setup and it works, so I haven't tried to change it. If you consider it is needed, we can add an issue to fine-tune its value after the migration.
GKE_ADMIN: ${{ secrets.GKE_ADMIN }} | ||
GCLOUD_KEY: ${{ secrets.GCLOUD_KEY }} | ||
main: | ||
uses: ./.github/workflows/kubeapps-main-reusable.yaml |
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.
Neat!
Signed-off-by: Jesús Benito Calzada [email protected]
Description of the change
In order to be able to trigger what we call
prerelease flow
manually, this PR turns the currentKubeapps general pipeline
workflow into a general reusable workflow, and adds two new workflows that call the former:run_gke_tests
with the valuetrue
, so the set of e2e tests is executed on the GKE environments. It is the replacement for the oldprerelease
flow.push
andpull request
events. It calls the general workflow without providing the input parameterrun_gke_tests
(its default value isfalse
), so the GKE tests aren't run. This workflow comes to replace the currentkubeapps general pipeline
workflow that has been turned into a reusable workflow, so we need this one to trigger it automatically.Benefits
We have full control of the different workflows, being able to trigger the
prerelease
flow (now calledFull Integration Pipeline
) on demand, and without needing to craft a dummyprerelease
branch to do it.Possible drawbacks
Applicable issues