-
Notifications
You must be signed in to change notification settings - Fork 558
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
Setup buildkite as an alternative to AZP #4771
Conversation
Ah great we can also do logs extraction to create warnings https://buildkite.com/docs/agent/v3/cli-annotate |
81e570d
to
9c10f73
Compare
Some comments about what we currently do in Azure Pipelines. In terms of race conditions:
Note that buildkite is currently running, and failing, also on |
Done. |
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.
First round of comments.
Reminder that skipping build isn't implemented at the moment.
So the current failure is real and I don't know why and how. It seems to occur always when master is ahead of this feature branch, but git does not give a useful error. |
I guess that's because this doesn't run on the merge commit (which is my gripe with buildkite) 🙃 |
When I have some free time, I want to get https://github.com/JuliaCI/pull-request-merge-commit-buildkite-plugin working. Then you would just stick that plugin at the top of your list of plugins, and it would automatically take care of checking out the merge commit. Don't use it yet though, it doesn't work. |
It's particularly weird since I can't reproduce locally |
Alright, the minimum functionality of https://github.com/JuliaCI/merge-commit-buildkite-plugin is now there. Basically, you just add this to the top of your plugin list:
So e.g. steps:
- plugins:
- JuliaCI/merge-commit: ~ You'll want to make sure you do this for every step. Note: eventually, you'll want to replace |
You should run the generator inside Sandbox.jl. |
How can I tell if I am? The |
It looks like we are now checking out the merge commit correctly! |
:plugins => plugins(), | ||
:timeout_in_minutes => 30, | ||
:concurrency => 1, | ||
:concurrency_group => "yggdrasil/register", |
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 do project name here
:label => "register -- $NAME", | ||
:agents => agent(), | ||
:plugins => plugins(), | ||
:timeout_in_minutes => 30, |
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.
Look at time out
@giordano sadly NUMA has no warnings, do you have suggestions for a package that is fast and does emit some warnings? |
GR has some hundreds of warnings and it shouldn't take too long: https://dev.azure.com/JuliaPackaging/Yggdrasil/_build/results?buildId=24439&view=results |
From Elliot:
|
"inputs" => [ | ||
PROJECT, | ||
".ci/", | ||
# ?meta.json |
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.
@staticfloat in AZP we hash in the meta.json Not sure how to do that here
So the last steps are:
|
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.
Mentioned in the CI call, but repeating it also here: we should implement also here the [skip build]
keyword, which doesn't skip the CI job completely, only the build steps:
Lines 32 to 49 in 8e7a9c4
# Keyword to be used in the commit message to skip a rebuild | |
SKIP_BUILD_COOKIE="[skip build]" | |
# This variable will tell us whether we want to skip the build | |
export SKIP_BUILD="false" | |
if [[ $(Build.Reason) == "PullRequest" ]]; then | |
# If we're on a PR though, we look at the entire branch at once | |
TARGET_BRANCH="remotes/origin/$(System.PullRequest.TargetBranch)" | |
COMPARE_AGAINST=$(git merge-base --fork-point ${TARGET_BRANCH} HEAD) | |
git fetch origin "refs/pull/$(System.PullRequest.PullRequestNumber)/head:refs/remotes/origin/pr/$(System.PullRequest.PullRequestNumber)" | |
if [[ "$(git show -s --format=%B origin/pr/$(System.PullRequest.PullRequestNumber))" == *"${SKIP_BUILD_COOKIE}"* ]]; then | |
SKIP_BUILD="true" | |
fi | |
else | |
if [[ "$(git show -s --format=%B)" == *"${SKIP_BUILD_COOKIE}"* ]]; then | |
SKIP_BUILD="true" | |
fi | |
fi |
Yggdrasil/.ci/register_package.jl
Line 96 in 8e7a9c4
skip_build = get(ENV, "SKIP_BUILD", "false") == "true" |
H/HelloWorldC/build_tarballs.jl
Outdated
@@ -3,6 +3,7 @@ using BinaryBuilder | |||
name = "HelloWorldC" | |||
version = v"1.2.1" | |||
|
|||
|
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.
Bump the version.
function download_cached_binaries(download_dir) | ||
NAME = ENV["NAME"] | ||
PROJECT = ENV["PROJECT"] | ||
artifacts = "$(PROJECT)/products/$(NAME)*.tar.gz" |
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.
How does globbing work in the Cmd
below?
Looking at JuliaBinaryWrappers/HelloWorldC_jll.jl@bd36c4c I believe you aren't exporting the environment variable
are you? That's currently set in https://github.com/JuliaPackaging/Yggdrasil/blob/8e7a9c4f1761fcb71c8d2e33688d36ff6fb9f9d2/.ci/azp_agent/.env, so you may have missed it. |
Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
TODO:
registration