Skip to content

Commit e601723

Browse files
committed
Break down benchmarks further + Build them when creating release
I want to stay away from the 6 hours cutoff time for a job.
1 parent afc8a6b commit e601723

File tree

1 file changed

+42
-14
lines changed

1 file changed

+42
-14
lines changed

.github/workflows/create-release.yml

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,19 @@ jobs:
1616
outputs:
1717
release_upload_url: ${{ steps.create_release.outputs.upload_url }}
1818
steps:
19+
- uses: actions/checkout@v2
20+
- name: Set up JDK 16
21+
uses: actions/setup-java@v1
22+
with:
23+
java-version: 16
24+
- name: Build
25+
run: mvn --batch-mode package
26+
- name: Upload Benchmarks
27+
uses: actions/upload-artifact@v2
28+
with:
29+
name: benchmarks
30+
path: benchmarks/target/netlib-benchmarks.jar
31+
if-no-files-found: error
1932
- name: Create Release
2033
id: create_release
2134
uses: actions/create-release@v1
@@ -34,44 +47,59 @@ jobs:
3447
matrix:
3548
jdk: [11, 16]
3649
implementation: ["f2j", "java"]
50+
filter: ["dev.ludovic.netlib.benchmarks.blas.l1", "dev.ludovic.netlib.benchmarks.blas.l2", "dev.ludovic.netlib.benchmarks.blas.l3"]
3751
include:
3852
- jdk: 16
3953
implementation: "vector"
54+
filter: "dev.ludovic.netlib.benchmarks.blas.l1"
55+
jvmArgs: "--add-modules=jdk.incubator.vector"
56+
- jdk: 16
57+
implementation: "vector"
58+
filter: "dev.ludovic.netlib.benchmarks.blas.l2"
59+
jvmArgs: "--add-modules=jdk.incubator.vector"
60+
- jdk: 16
61+
implementation: "vector"
62+
filter: "dev.ludovic.netlib.benchmarks.blas.l3"
4063
jvmArgs: "--add-modules=jdk.incubator.vector"
4164
- jdk: 16
4265
implementation: "native"
66+
filter: "dev.ludovic.netlib.benchmarks.blas.l1"
67+
jvmArgs: "--add-modules=jdk.incubator.foreign -Dforeign.restricted=permit"
68+
- jdk: 16
69+
implementation: "native"
70+
filter: "dev.ludovic.netlib.benchmarks.blas.l2"
71+
jvmArgs: "--add-modules=jdk.incubator.foreign -Dforeign.restricted=permit"
72+
- jdk: 16
73+
implementation: "native"
74+
filter: "dev.ludovic.netlib.benchmarks.blas.l3"
4375
jvmArgs: "--add-modules=jdk.incubator.foreign -Dforeign.restricted=permit"
4476
steps:
45-
- name: Checkout code
46-
uses: actions/checkout@v2
47-
- name: Set up JDK 16
48-
uses: actions/setup-java@v1
49-
with:
50-
java-version: 16
51-
- name: Build
52-
run: mvn --batch-mode -Dmaven.test.skip=true -Dmaven.javadoc.skip=true package
53-
5477
- name: Set up JDK ${{ matrix.jdk }}
5578
uses: actions/setup-java@v1
5679
with:
5780
java-version: ${{ matrix.jdk }}
81+
- name: Download Benchmarks
82+
id: download_benchmarks
83+
uses: actions/download-artifact@v2
84+
with:
85+
name: benchmarks
5886
- name: Run benchmark
59-
run: java -jar benchmarks/target/netlib-benchmarks.jar -p implementation=${{ matrix.implementation }} -jvmArgs "-XX:+UseParallelGC ${{ matrix.jvmArgs }}" -rf json -rff jmh-results-jdk${{ matrix.jdk }}-${{ matrix.implementation }}.json | tee jmh-jdk${{ matrix.jdk }}-${{ matrix.implementation }}.out
87+
run: java -jar "${{steps.download_benchmarks.outputs.download-path}}/netlib-benchmarks.jar" ${{ matrix.filter }} -p implementation=${{ matrix.implementation }} -jvmArgs "-XX:+UseParallelGC ${{ matrix.jvmArgs }}" -rf json -rff jmh-results-jdk${{ matrix.jdk }}-${{ matrix.filter }}-${{ matrix.implementation }}.json | tee jmh-jdk${{ matrix.jdk }}-${{ matrix.filter }}-${{ matrix.implementation }}.out
6088
- name: Upload JMH results
6189
uses: actions/upload-release-asset@v1
6290
env:
6391
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6492
with:
6593
upload_url: ${{ needs.build.outputs.release_upload_url }}
66-
asset_path: jmh-results-jdk${{ matrix.jdk }}-${{ matrix.implementation }}.json
67-
asset_name: jmh-results-jdk${{ matrix.jdk }}-${{ matrix.implementation }}.json
94+
asset_path: jmh-results-jdk${{ matrix.jdk }}-${{ matrix.filter }}-${{ matrix.implementation }}.json
95+
asset_name: jmh-results-jdk${{ matrix.jdk }}-${{ matrix.filter }}-${{ matrix.implementation }}.json
6896
asset_content_type: application/json
6997
- name: Upload JMH output
7098
uses: actions/upload-release-asset@v1
7199
env:
72100
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
73101
with:
74102
upload_url: ${{ needs.build.outputs.release_upload_url }}
75-
asset_path: jmh-jdk${{ matrix.jdk }}-${{ matrix.implementation }}.out
76-
asset_name: jmh-jdk${{ matrix.jdk }}-${{ matrix.implementation }}.out
103+
asset_path: jmh-jdk${{ matrix.jdk }}-${{ matrix.filter }}-${{ matrix.implementation }}.out
104+
asset_name: jmh-jdk${{ matrix.jdk }}-${{ matrix.filter }}-${{ matrix.implementation }}.out
77105
asset_content_type: text/plain

0 commit comments

Comments
 (0)