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
github: partition the github action workflows #8489
Conversation
77bb57e
to
e13db81
Compare
211895d
to
d313dd1
Compare
This commit partitions the spread systems into multiple actions that are each unit tested with a different go version. This allows independent restarts and also earlier failures if a specific go version does break the tests. The common code in unit-tests-* should be shared somehow, maybe via a custom action. But that can be done in a followup.
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.
Partial review.
I'd like to use the opportunity to restart this a few more times to see the new workers operate successfully.
on: | ||
pull_request: | ||
branches: [ "master", "release/**" ] | ||
jobs: | ||
unit-tests: | ||
unit-tests-1_10: |
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.
Each workflow has private identifiers, you can just keep this at unit-tests
without ill effects.
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.
That's what I did initially but iirc it looked not super nice in the web UI, it was a bit confusing what was running where etc.
@@ -30,15 +30,21 @@ jobs: | |||
with: | |||
path: /var/cache/apt | |||
key: var-cache-apt-{{ hashFiles('**/debian/control') }} | |||
- name: Run "apt update" |
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.
Why is this moved out to a separate step? On a cache hit you avoid this entire section.
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.
Unfortunately the archive/ppa changes all the time so "apt install foo" will not work after a couple of days because the cache has v1.22 but the archive has moved on to 1.23 but the cache was not updated because nothing in debian/control has changed.
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.
Actually I think this is needed because of a hash key collision somehow
# golang 1.10 is used on 14.04/16.04/18.04 | ||
- name: Install the go snap | ||
run: | | ||
sudo snap install --classic --channel=1.10 go |
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 excellent :) Feels like we are really doing something right :)
Does this need some repo level switches to be changed? There is a bunch of |
@bboozzoo Yes, it needs an update to the required actions, I will do that once this is ready to land. |
@@ -1,18 +1,18 @@ | |||
name: Tests | |||
name: Tests go1.10 |
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.
Maybe we should name the workflows go1.xx unit and spread[-unstable] native
?
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.
Let's merge this.
Mvo: remember to adjust required status checks.
This commit partitions the spread systems into multiple actions
that are each unit tested with a different go version. This
allows independent restarts.