Skip to content

Add GitHub Action for Scheduled Releases (#537) #275

Add GitHub Action for Scheduled Releases (#537)

Add GitHub Action for Scheduled Releases (#537) #275

name: "Test all metadata"
on:
push:
branches:
- master
paths-ignore:
- '**.md'
- 'library-and-framework-list*.json'
workflow_dispatch:
concurrency:
group: "workflow = ${{ github.workflow }}, ref = ${{ github.event.ref }}, pr = ${{ github.event.pull_request.id }}"
cancel-in-progress: true
jobs:
get-all-metadata:
if: github.repository == 'oracle/graalvm-reachability-metadata'
name: "📋 Get list of all supported libraries"
runs-on: "ubuntu-20.04"
timeout-minutes: 5
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: "☁️ Checkout repository"
uses: actions/checkout@v4
- name: "🔧 Prepare environment"
uses: graalvm/setup-graalvm@v1
with:
java-version: '17'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: "🕸️ Populate matrix"
id: set-matrix
run: |
./gradlew generateMatrixMatchingCoordinates -Pcoordinates=all
test-all-metadata:
if: github.repository == 'oracle/graalvm-reachability-metadata'
name: "🧪 ${{ matrix.coordinates }} (GraalVM for JDK ${{ matrix.version }} @ ${{ matrix.os }})"
runs-on: ${{ matrix.os }}
timeout-minutes: 20
needs: get-all-metadata
strategy:
fail-fast: false
matrix: ${{fromJson(needs.get-all-metadata.outputs.matrix)}}
steps:
- name: "☁️ Checkout repository"
uses: actions/checkout@v4
- name: "🔧 Setup java"
uses: actions/setup-java@v4
with:
distribution: 'oracle'
java-version: '17'
- name: "🔧 Prepare environment"
uses: graalvm/setup-graalvm@v1
with:
set-java-home: 'false'
java-version: ${{ matrix.version }}
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
native-image-job-reports: 'true'
- name: "Pull allowed docker images"
run: |
./gradlew pullAllowedDockerImages --coordinates=${{ matrix.coordinates }}
- name: "Disable docker"
run: |
sudo apt-get install openbsd-inetd
sudo bash -c "cat ./.github/workflows/discard-port.conf >> /etc/inetd.conf"
sudo systemctl start inetd
sudo mkdir /etc/systemd/system/docker.service.d
sudo bash -c "cat ./.github/workflows/dockerd.service > /etc/systemd/system/docker.service.d/http-proxy.conf"
sudo systemctl daemon-reload
sudo systemctl restart docker
- name: "🧪 Run '${{ matrix.coordinates }}' tests"
run: |
./gradlew test -Pcoordinates=${{ matrix.coordinates }}
all-metadata-passed:
name: "🧪 All metadata tests have passed"
runs-on: "ubuntu-20.04"
timeout-minutes: 1
if: ${{ always() }} && github.repository == 'oracle/graalvm-reachability-metadata'
needs: test-all-metadata
steps:
- name: "All tests passed"
if: needs.test-all-metadata.result == 'success'
run: exit 0
- name: "Some tests failed"
if: needs.test-all-metadata.result == 'failure'
run: exit 1