action: support for benchmark using GitHub actions in conjunction with Buildkite#3374
action: support for benchmark using GitHub actions in conjunction with Buildkite#3374
Conversation
| # nvm_resolve_local_alias default returns VERSION= while in Jenkins a similar | ||
| # runner returns VERSION=v14.21.3 | ||
| # Already reported to the System owners of the Buildkite agent setup. | ||
| \. "$NVM_DIR/nvm.sh" || true |
There was a problem hiding this comment.
I've no clue what's the reason for the failure... I also asked to the community in nvm-sh/nvm#3117
It seems to work later on if using || true
There was a problem hiding this comment.
# Let's require that the given node version is a full `X.Y.Z` version.
node_version=16.20.0
# Then the "install node" process is just this:
curl -sS https://nodejs.org/dist/v${node_version}/node-v${node_version}-linux-x64.tar.gz -o node.tar.gz
tar xf node.tar.gz
export PATH=`pwd`/node-v${node_version}-linux-x64/bin:$PATHPerhaps just error out if we are not running on linux-x64.
There was a problem hiding this comment.
The node version used is the one present in .nvmrc.
.github/workflows/microbenchmark.yml
Outdated
| push: | ||
| branches: | ||
| - main | ||
| - feature/microbenchmark |
There was a problem hiding this comment.
| - feature/microbenchmark |
Just for main is fine. |
trentm
left a comment
There was a problem hiding this comment.
Thanks for doing this!
- Can the .groovy files in ".ci/" be removed as well?
A number of comments below.
| # nvm_resolve_local_alias default returns VERSION= while in Jenkins a similar | ||
| # runner returns VERSION=v14.21.3 | ||
| # Already reported to the System owners of the Buildkite agent setup. | ||
| \. "$NVM_DIR/nvm.sh" || true |
There was a problem hiding this comment.
# Let's require that the given node version is a full `X.Y.Z` version.
node_version=16.20.0
# Then the "install node" process is just this:
curl -sS https://nodejs.org/dist/v${node_version}/node-v${node_version}-linux-x64.tar.gz -o node.tar.gz
tar xf node.tar.gz
export PATH=`pwd`/node-v${node_version}-linux-x64/bin:$PATHPerhaps just error out if we are not running on linux-x64.
trentm
left a comment
There was a problem hiding this comment.
A couple small things, otherwise LGTM. Thanks.
Can these be removed?
.ci/schedule-daily.groovy
.ci/schedule-weekly.groovy
.github/workflows/microbenchmark.yml
Outdated
| push: | ||
| branches: | ||
| - main | ||
| - feature/microbenchmark |
this will not show make the UI better in GitHub actions though
Co-authored-by: Trent Mick <trent.mick@elastic.co>
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
94fff4f to
50f952e
Compare
Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co>
…h Buildkite (elastic#3374) * ci: remove Jenkins * support for benchmark using GitHub actions in conjunction with Buildkite * chore: for testing purposes * remove any Jenkins references * add buildkite log echo for helping with collapsing the output in the UI this will not show make the UI better in GitHub actions though * action: group logs * Revert "action: group logs" This reverts commit 92bcd6c. * move the traces earlier * debug what's going on * use the installation steps explained in https://github.com/nvm-sh/nvm * use install manually as explained in https://github.com/nvm-sh/nvm\#manual-install * Revert "use install manually as explained in https://github.com/nvm-sh/nvm\#manual-install" This reverts commit 0af0553. * install only if it is not installed * debug whether shell login * avoid errors when calling the nvm for the first time * support buildkite missbehaviour * remove debug * revert changes to be similar to the previous configuration * debug * reduce log traces * Update .ci/scripts/bench.sh * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Trent Mick <trent.mick@elastic.co> * ci: small format cleanup Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> * ci: let's debug nvm install Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> * ci: correct benchmark prepare step Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> * ci: flush positional arguments and use major version Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> * ci: properly set NODE_VERSION env var Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> * ci: use nvmrc instead of explicit value Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> * ci: small cleanup Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> * ci: last cleanup before merge Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> * ci: remove leftover jenkins job scheduling Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> --------- Signed-off-by: Adrien Mannocci <adrien.mannocci@elastic.co> Co-authored-by: Trent Mick <trent.mick@elastic.co> Co-authored-by: Adrien Mannocci <adrien.mannocci@elastic.co>
What
Migrate the very last thing so we can delete the pipeline in Jenkins.
It uses Buildkite since the existing microbenchmark runners are attached to Buildkite. Though the orchestrator is GitHub actions, hence the buildkite run is reported.
It is only supported for
mainif needed for PRs, it will be done in a follow up - we don't wanna run by default on PRs so we can avoid running code from external contributors.Checklist
Test
See https://github.com/elastic/apm-agent-nodejs/actions/runs/5089734599/jobs/9147721605 that got triggered the microbenchmarks.