-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
CI: Add support for GitHub Actions #6885
CI: Add support for GitHub Actions #6885
Conversation
when i was playing, i was trying to split. I left it at https://github.com/directionless/osquery/blob/master/.github/workflows/macos.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.
I like this.
I don't know if we can converge the different os jobs in the workflow. It feels a bit weird to have so many duplicated steps. But, I'd accept it.
From this, it looks like the github stuff is notable slower than the azure stuff. I guess we'll see if that's an issue. |
I think there's something wrong going with ccache; the agent instances should be very similar if not identical to Azure Pipelines. |
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.
What if the individual platform builds don't depend on the check code style step? Then we might be able to split this up into separate files and also the run could complete quicker due to further parallelization.
The check_code_style job was implemented as a blocking prerequisite to make sure that an invalid PR (which could receive a burst of additional commits that attempts to fix formatting) will not cause valid PRs to starve for workers |
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.
I wonder if it's possible to have a new push to a branch cancel the runs of the existing jobs. That could resolve the starvation issue. Happy to go ahead with this.
That is what it happens already, you won't have more than a run worth of jobs occupied, but I guess what we're trying to avoid is to still occupy those jobs if the formatting is going to fail again and will require another change. |
The original intent was to just add Linux support, but I ended up adding all platforms (sadly, I wasn't able to keep one file per OS because jobs can only depend on other jobs defined on the same files).
I think it looks decent for an initial version, as it's at least in feature parity compared to Azure; I would like to start looking into the signing options with @directionless's guidance once this is merged
The workflow should always attach the following artifacts:
An additional difference compared to Azure is that no build jobs are started if the code fails the format check