-
Notifications
You must be signed in to change notification settings - Fork 23
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
Rework Workflow and add Systemtest to it #46
Conversation
This reverts commit 4899f7e.
I have a hunch that downloading the images from the registry could be faster than writing the image as artifact on the disk... (?) Have you tried that? |
We are pushing images to the docker image registry only for master at this moment. Pulling from the registry and I agree would be the simpler (and probably faster) solution. Doing so for other branches would then require some changes:
Although it might seem quick & dirty, doing so with upload and download of the artefacts keeps the previous workflow without affecting its behaviour dramatically. EDIT: I could go the image push/pull way with a cleanup afterwards, though. |
Yeah I like the idea! @andreas-bauer @mathiaszinnen What do you two think? |
I cannot assess whether pushing to and pulling from the docker registry would be faster than using GitHub artifacts. What makes you two think so? If it is faster, I would also prefer using the registry.
I do not know, however, if the speedup is worth the increased complexity. Maybe we should check if it is fast enough as it is first. |
It took 8m 25-ish for a complete run in my fork. One nice thing about the artifacts is that you don't have to manage them - they are deleted after I think 90 days or so. The behaviour of the registry is quite different. Pushing is quite easy. Deleting makes no fun though, because one has to work with the GitHub registry api via curl (or use third-party actions). Also: what is the criteria for pushing to the registry then? Build & Test, Integration test or system test? EDIT: @mathiaszinnen the system test can only be run after all others have run successfully. |
Yeah, I also just read an article that deleting the images won't work. Deleting the tag would, though. Why I came up with the idea: I liked having one file per service and not this huge clumsy file... CI time ~9min should be fine in my opinion. |
All integration tests and the system test can run in parallel given everything has build & tested nicely. |
Yes, that is exactly what I meant.
Regarding the multiple files/single file and GitHub artifact/docker-registry alternatives, I don't really have a preference. |
Here are my 2 cents: Workflow fileI like the one file solution because the actions overview is better. One file with multiple jobs: "Caching" the imagesPushing and pulling the images is not a good idea at the moment. It is not possible to delete images in GitHub's registry. See github community. It seams like there is no very good way to cache images to improve the speed of the pipeline. There are multiple issues open on GitHub where people asking for such features. Therefore, my recommendation is to keep the artifact upload approach, until there is a clean solution directly supported by GitHub. |
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.
Looks good! Great work! :)
Allright, I agree. You got me with the cleaner UI view. @9dt please sign the cla so we can accept your contributions ;) |
Rework CI workflow and execute system tests
Rework CI workflow and execute system tests
For the systemtest to work, all previous builds & test have to be run prior to invoking it. That is, a job dependency has to be in place, which was not possible in the setup with multiple workflows.
This is to create one workflow, where a job can be run only if another has successfully run, which is needed for the systemtest.
The systemtest job is then added at the end with the condition, that other jobs have had successfully run before it even starts.