1
+ #
2
+ # Copyright (c) 2024, 2024, 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 : Reachability Metadata Tests
42
+
43
+ on :
44
+ pull_request :
45
+ paths :
46
+ - ' .github/actions/**'
47
+ - ' .github/workflows/reachability-metadata.yml'
48
+ - ' versions/latest-ea.json'
49
+ workflow_dispatch :
50
+
51
+ env :
52
+ REACHABILITY_METADATA_PATH : ${{ github.workspace }}/graalvm-reachability-metadata
53
+ MINIMUM_METADATA_JAVA_VERSION : 17
54
+
55
+ permissions :
56
+ contents : read # to fetch code (actions/checkout)
57
+
58
+ jobs :
59
+ populate-matrix :
60
+ name : Populate matrix
61
+ runs-on : ubuntu-20.04
62
+ outputs :
63
+ matrix : ${{ steps.set-matrix.outputs.matrix }}
64
+ steps :
65
+ - name : Checkout oracle/graalvm-reachability-metadata
66
+ uses : actions/checkout@v4
67
+ with :
68
+ repository : oracle/graalvm-reachability-metadata
69
+ path : ${{ env.REACHABILITY_METADATA_PATH }}
70
+ - name : " Setup JAVA_HOME"
71
+ uses : actions/setup-java@v4
72
+ with :
73
+ distribution : ' oracle'
74
+ java-version : ${{ env.MINIMUM_METADATA_JAVA_VERSION }}
75
+ - name : " Populate matrix"
76
+ id : set-matrix
77
+ run : |
78
+ cd ${{ env.REACHABILITY_METADATA_PATH }}
79
+ ./gradlew generateMatrixMatchingCoordinates -Pcoordinates=all
80
+
81
+ test-all-metadata :
82
+ name : ${{ matrix.coordinates }}
83
+ runs-on : ubuntu-latest
84
+ timeout-minutes : 20
85
+ needs : populate-matrix
86
+ strategy :
87
+ fail-fast : false
88
+ matrix :
89
+ coordinates : ${{fromJson(needs.populate-matrix.outputs.matrix).coordinates}}
90
+ steps :
91
+ - name : Checkout oracle-graalvm-ea-builds for setup-oracle-graalvm-ea-build
92
+ uses : actions/checkout@v4
93
+ - name : " Checkout oracle/graalvm-reachability-metadata"
94
+ uses : actions/checkout@v4
95
+ with :
96
+ repository : oracle/graalvm-reachability-metadata
97
+ path : ${{ env.REACHABILITY_METADATA_PATH }}
98
+ - name : Set up GraalVM JDK EA build
99
+ uses : ./.github/actions/setup-oracle-graalvm-ea-build
100
+ with :
101
+ java-version : ${{ env.MINIMUM_METADATA_JAVA_VERSION }}
102
+ - name : " Pull allowed docker images"
103
+ run : |
104
+ cd ${{ env.REACHABILITY_METADATA_PATH }}
105
+ ./gradlew pullAllowedDockerImages --coordinates=${{ matrix.coordinates }}
106
+ - name : " Disable docker"
107
+ run : |
108
+ cd ${{ env.REACHABILITY_METADATA_PATH }}
109
+ sudo apt-get install openbsd-inetd
110
+ sudo bash -c "cat ./.github/workflows/discard-port.conf >> /etc/inetd.conf"
111
+ sudo systemctl start inetd
112
+ sudo mkdir /etc/systemd/system/docker.service.d
113
+ sudo bash -c "cat ./.github/workflows/dockerd.service > /etc/systemd/system/docker.service.d/http-proxy.conf"
114
+ sudo systemctl daemon-reload
115
+ sudo systemctl restart docker
116
+ - name : " Run '${{ matrix.coordinates }}' tests"
117
+ run : |
118
+ cd ${{ env.REACHABILITY_METADATA_PATH }}
119
+ ./gradlew test -Pcoordinates=${{ matrix.coordinates }}
120
+
0 commit comments