Skip to content

Commit 7420737

Browse files
authored
Use canary binary (#1384)
This PR updates MMTk core CI to use `ci-perf-kit 0.8.4` (mmtk/ci-perf-kit#49). It uses a binary build of our OpenJDK binding releases, as the canary build.
1 parent 8d8aae2 commit 7420737

File tree

5 files changed

+33
-25
lines changed

5 files changed

+33
-25
lines changed

.github/workflows/micro-bm.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
with:
6767
repository: mmtk/ci-perf-kit
6868
token: ${{ secrets.GITHUB_TOKEN }}
69-
ref: "0.8.3"
69+
ref: "0.8.4"
7070
path: ci-perf-kit
7171
submodules: true
7272
# Use rust-toolchain in the trunk (it doesnt matter much - if the toolchains defined in the trunk and the branch are different, we cant run anyway)

.github/workflows/perf-baseline.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
with:
4343
token: ${{ secrets.CI_ACCESS_TOKEN }}
4444
repository: mmtk/ci-perf-kit
45-
ref: "0.8.3"
45+
ref: "0.8.4"
4646
path: ci-perf-kit
4747
submodules: true
4848
# setup
@@ -94,7 +94,7 @@ jobs:
9494
with:
9595
token: ${{ secrets.CI_ACCESS_TOKEN }}
9696
repository: mmtk/ci-perf-kit
97-
ref: "0.8.3"
97+
ref: "0.8.4"
9898
path: ci-perf-kit
9999
submodules: true
100100
# setup

.github/workflows/perf-compare-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ jobs:
112112
with:
113113
repository: mmtk/ci-perf-kit
114114
token: ${{ secrets.CI_ACCESS_TOKEN }}
115-
ref: "0.8.3"
115+
ref: "0.8.4"
116116
path: ci-perf-kit
117117
submodules: true
118118
# setup
@@ -219,7 +219,7 @@ jobs:
219219
with:
220220
repository: mmtk/ci-perf-kit
221221
token: ${{ secrets.CI_ACCESS_TOKEN }}
222-
ref: "0.8.3"
222+
ref: "0.8.4"
223223
path: ci-perf-kit
224224
submodules: true
225225
# setup

.github/workflows/perf-regression-ci.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
uses: actions/checkout@v4
4646
with:
4747
repository: mmtk/ci-perf-kit
48-
ref: "0.8.3"
48+
ref: "0.8.4"
4949
path: ci-perf-kit
5050
token: ${{ secrets.CI_ACCESS_TOKEN }}
5151
submodules: true
@@ -116,6 +116,9 @@ jobs:
116116
# available. Then we may change to another release version and mark the change of canary on
117117
# the timeline, or introduce a mechanism to dynamically choose the canary version.
118118
CANARY_VERSION: "v0.28.0"
119+
CANARY_RELEASE_BINARY_NAME: "jdk-11.0.19-internal+0_linux-x64_bin.tar.gz"
120+
CANARY_JDK_NAME: "jdk-11.0.19"
121+
CANARY_DIR: "canary"
119122
steps:
120123
# checkout latest versions
121124
- name: Checkout MMTk Core (latest)
@@ -136,29 +139,26 @@ jobs:
136139
uses: actions/checkout@v4
137140
with:
138141
repository: mmtk/ci-perf-kit
139-
ref: "0.8.3"
142+
ref: "0.8.4"
140143
path: ci-perf-kit
141144
submodules: true
142-
# checkout canary versions.
143-
- name: Checkout MMTk Core (canary)
144-
uses: actions/checkout@v4
145-
with:
146-
ref: ${{ env.CANARY_VERSION }}
147-
path: canary/mmtk-core
148-
- name: Checkout OpenJDK Binding (canary)
149-
uses: actions/checkout@v4
150-
with:
151-
ref: ${{ env.CANARY_VERSION }}
152-
repository: mmtk/mmtk-openjdk
153-
path: canary/mmtk-openjdk
154-
- name: Checkout OpenJDK (canary)
155-
working-directory: canary/mmtk-openjdk
145+
# download canary build
146+
# The tarball should be the standard product tarball from `make product-bundles` (see docs/team/release.md).
147+
- name: Download canary build
148+
env:
149+
GH_TOKEN: ${{ secrets.CI_ACCESS_TOKEN }}
156150
run: |
157-
./.github/scripts/ci-checkout.sh
151+
rm -rf ${{ env.CANARY_DIR }}
152+
mkdir -p ${{ env.CANARY_DIR }}
153+
gh release download ${{ env.CANARY_VERSION }} --repo mmtk/mmtk-openjdk --pattern "${{ env.CANARY_RELEASE_BINARY_NAME }}" --dir ${{ env.CANARY_DIR }}/images
154+
cd ${{ env.CANARY_DIR}}/images
155+
tar -xvzf ${{ env.CANARY_RELEASE_BINARY_NAME }}
156+
mv ${{ env.CANARY_JDK_NAME }} jdk
157+
rm ${{ env.CANARY_RELEASE_BINARY_NAME }}
158158
# setup
159159
- name: Setup directory structures
160160
run: |
161-
for BASE_DIR in ./latest ./canary; do
161+
for BASE_DIR in ./latest; do
162162
pushd $BASE_DIR
163163
# replace dependency
164164
# Note that ci-replace-mmtk-dep.sh will apply `realpath()` to the `--mmtk-core-path` option.
@@ -183,7 +183,7 @@ jobs:
183183
export FROM_DATE=2020-07-10
184184
./ci-perf-kit/scripts/openjdk-history-run.sh \
185185
./latest/mmtk-openjdk \
186-
./canary/mmtk-openjdk \
186+
${{ env.CANARY_DIR }} \
187187
./reports/${{ steps.branch.outputs.branch_name }}
188188
# deploy
189189
- name: Deploy to Github Page
@@ -230,7 +230,7 @@ jobs:
230230
uses: actions/checkout@v4
231231
with:
232232
repository: mmtk/ci-perf-kit
233-
ref: "0.8.3"
233+
ref: "0.8.4"
234234
path: ci-perf-kit
235235
token: ${{ secrets.CI_ACCESS_TOKEN }}
236236
submodules: true

docs/team/release.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,14 @@ Once the PRs are merged, we can tag releases on Github.
7272
5. Tick 'Set as a pre-release'.
7373
6. Click 'Publish release'.
7474

75+
#### OpenJDK Binary Release
76+
77+
The OpenJDK binding release should also include the compiled binary packaged as a tarball.
78+
This tarball is used for the canary build in the performance CI. See [Regression Test Canary](https://github.com/mmtk/mmtk-core/blob/master/docs/team/ci.md#regression-test-canary).
79+
80+
You can generate the tarball using OpenJDK’s `make product-bundles` command (with MMTk).
81+
Among the generated files, the one with the `*_bin.tar.gz` suffix should be included in the release.
82+
7583
### Post release checklist
7684

7785
1. Keep an eye on the badges in [README](https://github.com/mmtk/mmtk-core#mmtk)

0 commit comments

Comments
 (0)