Skip to content

Commit 599f190

Browse files
committed
Templates for reachability-metadata.yml
1 parent 3134935 commit 599f190

File tree

3 files changed

+195
-87
lines changed

3 files changed

+195
-87
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#
2+
# Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights reserved.
3+
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+
#
5+
# The Universal Permissive License (UPL), Version 1.0
6+
#
7+
# Subject to the condition set forth below, permission is hereby granted to any
8+
# person obtaining a copy of this software, associated documentation and/or
9+
# data (collectively the "Software"), free of charge and under any and all
10+
# copyright rights in the Software, and any and all patent rights owned or
11+
# freely licensable by each licensor hereunder covering either (i) the
12+
# unmodified Software as contributed to or provided by such licensor, or (ii)
13+
# the Larger Works (as defined below), to deal in both
14+
#
15+
# (a) the Software, and
16+
#
17+
# (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
18+
# one is included with the Software each a "Larger Work" to which the Software
19+
# is contributed by such licensors),
20+
#
21+
# without restriction, including without limitation the rights to copy, create
22+
# derivative works of, display, perform, and distribute the Software and make,
23+
# use, sell, offer for sale, import, export, have made, and have sold the
24+
# Software and the Larger Work(s), and to sublicense the foregoing rights on
25+
# either these or other terms.
26+
#
27+
# This license is subject to the following condition:
28+
#
29+
# The above copyright notice and either this complete permission notice or at a
30+
# minimum a reference to the UPL must be included in all copies or substantial
31+
# portions of the Software.
32+
#
33+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
39+
# SOFTWARE.
40+
#
41+
name: Weekly Reachability Metadata Tests
42+
43+
on:
44+
pull_request:
45+
paths:
46+
- '.github/workflows/reachability-metadata-template.yml'
47+
- '.github/workflows/reachability-metadata-future-defaults.yml'
48+
schedule:
49+
- cron: '0 1 * * 1'
50+
workflow_dispatch:
51+
52+
jobs:
53+
call-template:
54+
uses: './.github/workflows/reachability-metadata-template.yml'
55+
with:
56+
NATIVE_IMAGE_OPTIONS: '--future-defaults=all'
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
#
2+
# Copyright (c) 2024, 2025, Oracle and/or its affiliates. All rights reserved.
3+
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+
#
5+
# The Universal Permissive License (UPL), Version 1.0
6+
#
7+
# Subject to the condition set forth below, permission is hereby granted to any
8+
# person obtaining a copy of this software, associated documentation and/or
9+
# data (collectively the "Software"), free of charge and under any and all
10+
# copyright rights in the Software, and any and all patent rights owned or
11+
# freely licensable by each licensor hereunder covering either (i) the
12+
# unmodified Software as contributed to or provided by such licensor, or (ii)
13+
# the Larger Works (as defined below), to deal in both
14+
#
15+
# (a) the Software, and
16+
#
17+
# (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
18+
# one is included with the Software each a "Larger Work" to which the Software
19+
# is contributed by such licensors),
20+
#
21+
# without restriction, including without limitation the rights to copy, create
22+
# derivative works of, display, perform, and distribute the Software and make,
23+
# use, sell, offer for sale, import, export, have made, and have sold the
24+
# Software and the Larger Work(s), and to sublicense the foregoing rights on
25+
# either these or other terms.
26+
#
27+
# This license is subject to the following condition:
28+
#
29+
# The above copyright notice and either this complete permission notice or at a
30+
# minimum a reference to the UPL must be included in all copies or substantial
31+
# portions of the Software.
32+
#
33+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
39+
# SOFTWARE.
40+
#
41+
name: Weekly Reachability Metadata Tests
42+
43+
on:
44+
workflow_call:
45+
inputs:
46+
NATIVE_IMAGE_OPTIONS:
47+
required: false
48+
type: string
49+
50+
env:
51+
REACHABILITY_METADATA_PATH: ${{ github.workspace }}/graalvm-reachability-metadata
52+
MINIMUM_METADATA_JAVA_VERSION: 17
53+
54+
permissions:
55+
contents: read # to fetch code (actions/checkout)
56+
57+
jobs:
58+
build-graalvm-and-populate-matrix:
59+
name: Build GraalVM and populate matrix
60+
runs-on: ubuntu-22.04
61+
if: (github.event_name == 'schedule' && github.repository == 'oracle/graal') || (github.event_name != 'schedule')
62+
outputs:
63+
matrix: ${{ steps.set-matrix.outputs.matrix }}
64+
steps:
65+
- name: Checkout oracle/graal
66+
uses: actions/checkout@v4
67+
- name: Build GraalVM JDK
68+
uses: ./.github/actions/build-graalvm
69+
with:
70+
native-images: 'native-image,native-image-configure,lib:native-image-agent'
71+
components: 'Native Image,Native Image Configure Tool'
72+
java-version: ${{ env.MINIMUM_METADATA_JAVA_VERSION }}
73+
- name: Tar GraalVM JDK
74+
shell: bash
75+
run: tar -czvhf graalvm.tgz -C $(dirname ${GRAALVM_HOME}) $(basename ${GRAALVM_HOME})
76+
- name: Persist GraalVM JDK build
77+
uses: actions/upload-artifact@v4
78+
with:
79+
name: graalvm
80+
path: graalvm.tgz
81+
- name: Checkout oracle/graalvm-reachability-metadata
82+
uses: actions/checkout@v4
83+
with:
84+
# change the repository and ref test potential fixes
85+
repository: vjovanov/graalvm-reachability-metadata
86+
ref: vj/fix-future-defaults
87+
path: ${{ env.REACHABILITY_METADATA_PATH }}
88+
- name: "Populate matrix"
89+
id: set-matrix
90+
run: |
91+
cd ${{ env.REACHABILITY_METADATA_PATH }}
92+
./gradlew generateMatrixMatchingCoordinates -Pcoordinates=all
93+
94+
test-all-metadata:
95+
name: ${{ matrix.coordinates }}
96+
runs-on: ubuntu-latest
97+
env:
98+
GRAALVM_HOME: ${{ github.workspace }}/graalvm # identical to the one in ./.github/actions/build-graalvm
99+
timeout-minutes: 20
100+
needs: build-graalvm-and-populate-matrix
101+
strategy:
102+
fail-fast: false
103+
matrix:
104+
coordinates: ${{fromJson(needs.build-graalvm-and-populate-matrix.outputs.matrix).coordinates}}
105+
steps:
106+
- name: "Checkout oracle/graalvm-reachability-metadata"
107+
uses: actions/checkout@v4
108+
with:
109+
repository: oracle/graalvm-reachability-metadata
110+
- name: Download GraalVM JDK build
111+
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
112+
with:
113+
name: graalvm
114+
path: .
115+
- name: Extract GraalVM JDK build
116+
run: tar -xzvf graalvm.tgz -C $(dirname ${GRAALVM_HOME})
117+
- name: "Setup JAVA_HOME"
118+
uses: actions/setup-java@v4
119+
with:
120+
distribution: 'oracle'
121+
java-version: ${{ env.MINIMUM_METADATA_JAVA_VERSION }}
122+
- name: "Pull allowed docker images"
123+
run: |
124+
./gradlew pullAllowedDockerImages --coordinates=${{ matrix.coordinates }}
125+
- name: "Disable docker"
126+
run: |
127+
sudo apt-get install openbsd-inetd
128+
sudo bash -c "cat ./.github/workflows/discard-port.conf >> /etc/inetd.conf"
129+
sudo systemctl start inetd
130+
sudo mkdir /etc/systemd/system/docker.service.d
131+
sudo bash -c "cat ./.github/workflows/dockerd.service > /etc/systemd/system/docker.service.d/http-proxy.conf"
132+
sudo systemctl daemon-reload
133+
sudo systemctl restart docker
134+
- name: "Run '${{ matrix.coordinates }}' tests"
135+
run: |
136+
./gradlew test -Pcoordinates=${{ matrix.coordinates }}

.github/workflows/reachability-metadata.yml

Lines changed: 3 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -43,96 +43,12 @@ name: Weekly Reachability Metadata Tests
4343
on:
4444
pull_request:
4545
paths:
46+
- '.github/workflows/reachability-metadata-template.yml'
4647
- '.github/workflows/reachability-metadata.yml'
4748
schedule:
4849
- cron: '0 1 * * 1'
4950
workflow_dispatch:
5051

51-
env:
52-
REACHABILITY_METADATA_PATH: ${{ github.workspace }}/graalvm-reachability-metadata
53-
MINIMUM_METADATA_JAVA_VERSION: 17
54-
NATIVE_IMAGE_OPTIONS: '--future-defaults=all'
55-
56-
permissions:
57-
contents: read # to fetch code (actions/checkout)
58-
5952
jobs:
60-
build-graalvm-and-populate-matrix:
61-
name: Build GraalVM and populate matrix
62-
runs-on: ubuntu-22.04
63-
if: (github.event_name == 'schedule' && github.repository == 'oracle/graal') || (github.event_name != 'schedule')
64-
outputs:
65-
matrix: ${{ steps.set-matrix.outputs.matrix }}
66-
steps:
67-
- name: Checkout oracle/graal
68-
uses: actions/checkout@v4
69-
- name: Build GraalVM JDK
70-
uses: ./.github/actions/build-graalvm
71-
with:
72-
native-images: 'native-image,native-image-configure,lib:native-image-agent'
73-
components: 'Native Image,Native Image Configure Tool'
74-
java-version: ${{ env.MINIMUM_METADATA_JAVA_VERSION }}
75-
- name: Tar GraalVM JDK
76-
shell: bash
77-
run: tar -czvhf graalvm.tgz -C $(dirname ${GRAALVM_HOME}) $(basename ${GRAALVM_HOME})
78-
- name: Persist GraalVM JDK build
79-
uses: actions/upload-artifact@v4
80-
with:
81-
name: graalvm
82-
path: graalvm.tgz
83-
- name: Checkout oracle/graalvm-reachability-metadata
84-
uses: actions/checkout@v4
85-
with:
86-
# change the repository and ref test potential fixes
87-
repository: vjovanov/graalvm-reachability-metadata
88-
ref: vj/fix-future-defaults
89-
path: ${{ env.REACHABILITY_METADATA_PATH }}
90-
- name: "Populate matrix"
91-
id: set-matrix
92-
run: |
93-
cd ${{ env.REACHABILITY_METADATA_PATH }}
94-
./gradlew generateMatrixMatchingCoordinates -Pcoordinates=all
95-
96-
test-all-metadata:
97-
name: ${{ matrix.coordinates }}
98-
runs-on: ubuntu-latest
99-
env:
100-
GRAALVM_HOME: ${{ github.workspace }}/graalvm # identical to the one in ./.github/actions/build-graalvm
101-
timeout-minutes: 20
102-
needs: build-graalvm-and-populate-matrix
103-
strategy:
104-
fail-fast: false
105-
matrix:
106-
coordinates: ${{fromJson(needs.build-graalvm-and-populate-matrix.outputs.matrix).coordinates}}
107-
steps:
108-
- name: "Checkout oracle/graalvm-reachability-metadata"
109-
uses: actions/checkout@v4
110-
with:
111-
repository: oracle/graalvm-reachability-metadata
112-
- name: Download GraalVM JDK build
113-
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
114-
with:
115-
name: graalvm
116-
path: .
117-
- name: Extract GraalVM JDK build
118-
run: tar -xzvf graalvm.tgz -C $(dirname ${GRAALVM_HOME})
119-
- name: "Setup JAVA_HOME"
120-
uses: actions/setup-java@v4
121-
with:
122-
distribution: 'oracle'
123-
java-version: ${{ env.MINIMUM_METADATA_JAVA_VERSION }}
124-
- name: "Pull allowed docker images"
125-
run: |
126-
./gradlew pullAllowedDockerImages --coordinates=${{ matrix.coordinates }}
127-
- name: "Disable docker"
128-
run: |
129-
sudo apt-get install openbsd-inetd
130-
sudo bash -c "cat ./.github/workflows/discard-port.conf >> /etc/inetd.conf"
131-
sudo systemctl start inetd
132-
sudo mkdir /etc/systemd/system/docker.service.d
133-
sudo bash -c "cat ./.github/workflows/dockerd.service > /etc/systemd/system/docker.service.d/http-proxy.conf"
134-
sudo systemctl daemon-reload
135-
sudo systemctl restart docker
136-
- name: "Run '${{ matrix.coordinates }}' tests"
137-
run: |
138-
./gradlew test -Pcoordinates=${{ matrix.coordinates }}
53+
call-template:
54+
uses: './.github/workflows/reachability-metadata-template.yml'

0 commit comments

Comments
 (0)