1 #
 2 # Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 4 #
 5 # This code is free software; you can redistribute it and/or modify it
 6 # under the terms of the GNU General Public License version 2 only, as
 7 # published by the Free Software Foundation.  Oracle designates this
 8 # particular file as subject to the "Classpath" exception as provided
 9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25 
26 name: 'Get JTReg'
27 description: 'Download JTReg from cache or source location'
28 outputs:
29   path:
30     description: 'Path to the installed JTReg'
31     value: ${{ steps.path-name.outputs.path }}
32 
33 runs:
34   using: composite
35   steps:
36     - name: 'Get JTReg version configuration'
37       id: version
38       uses: ./.github/actions/config
39       with:
40         var: JTREG_VERSION
41 
42     - name: 'Check cache for JTReg'
43       id: get-cached-jtreg
44       uses: actions/cache@v3
45       with:
46         path: jtreg/installed
47         key: jtreg-${{ steps.version.outputs.value }}
48 
49     - name: 'Checkout the JTReg source'
50       uses: actions/checkout@v4
51       with:
52         repository: openjdk/jtreg
53         ref: jtreg-${{ steps.version.outputs.value }}
54         path: jtreg/src
55       if: steps.get-cached-jtreg.outputs.cache-hit != 'true'
56 
57     - name: 'Build JTReg'
58       run: |
59         # If runner architecture is x64 set JAVA_HOME_17_X64 otherwise set to JAVA_HOME_17_arm64
60         if [[ '${{ runner.arch }}' == 'X64' ]]; then
61           JDK="$JAVA_HOME_17_X64"
62         else
63           JDK="$JAVA_HOME_17_arm64"
64         fi
65         # Build JTReg and move files to the proper locations
66         bash make/build.sh --jdk "$JDK"
67         mkdir ../installed
68         mv build/images/jtreg/* ../installed
69       working-directory: jtreg/src
70       shell: bash
71       if: steps.get-cached-jtreg.outputs.cache-hit != 'true'
72 
73     - name: 'Export path to where JTReg is installed'
74       id: path-name
75       run: |
76         # Export the path
77         echo 'path=jtreg/installed' >> $GITHUB_OUTPUT
78       shell: bash