Add maven functional testing in github actions #750
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Test native-maven-plugin" | |
on: | |
push: | |
paths: | |
- 'native-maven-plugin/**' | |
- 'samples/**' | |
- 'common/**' | |
- '.github/actions/**' | |
- '.github/workflows/test-native-maven-plugin.yml' | |
- 'gradle/libs.versions.toml' | |
pull_request: | |
paths: | |
- 'native-maven-plugin/**' | |
- 'samples/**' | |
- 'common/**' | |
- '.github/actions/**' | |
- '.github/workflows/test-native-maven-plugin.yml' | |
- 'gradle/libs.versions.toml' | |
workflow_dispatch: | |
concurrency: | |
group: "workflow = ${{ github.workflow }}, ref = ${{ github.event.ref }}, pr = ${{ github.event.pull_request.id }}" | |
cancel-in-progress: ${{ github.event_name == 'pull_request' || github.repository != 'graalvm/native-build-tools' }} | |
jobs: | |
populate-matrix: | |
name: "Set matrix" | |
runs-on: "ubuntu-20.04" | |
timeout-minutes: 5 | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: "βοΈ Checkout repository" | |
uses: actions/checkout@v3 | |
- 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 -PmatrixType=maven :native-maven-plugin:dumpFunctionalTestList | |
test-native-maven-plugin: | |
name: "π§ͺ Maven: ${{ matrix.test }} on ${{ matrix.os }}" | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
needs: populate-matrix | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJson(needs.populate-matrix.outputs.matrix)}} | |
steps: | |
- name: "βοΈ Checkout repository" | |
uses: actions/checkout@v4 | |
- name: "π§ Prepare environment" | |
uses: ./.github/actions/prepare-environment | |
with: | |
java-version: ${{ matrix.java-version }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: "β Check and test the plugin" | |
run: ./gradlew :native-maven-plugin:functionalTest --no-daemon --fail-fast --tests ${{ matrix.test }} | |
- name: "π Upload unit test results" | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: maven-functional-tests-results-${{ matrix.os }} | |
path: native-maven-plugin/build/reports/tests/ | |
functional-testing-maven-plugin-dev: | |
name: "Functional testing (GraalVM Dev Build)" | |
runs-on: ${{ matrix.os }} | |
env: | |
IS_GRAALVM_DEV_BUILD: 'true' | |
strategy: | |
fail-fast: false | |
matrix: | |
java-version: [ 17 ] | |
os: [ ubuntu-20.04 ] | |
steps: | |
- name: "βοΈ Checkout repository" | |
uses: actions/checkout@v4 | |
- name: "π§ Prepare environment" | |
uses: ./.github/actions/prepare-environment | |
with: | |
java-version: ${{ matrix.java-version }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: "π§ Install GraalVM (dev)" | |
uses: graalvm/setup-graalvm@main | |
with: | |
java-version: 'latest-ea' | |
distribution: 'graalvm' | |
github-token: ${{ inputs.github-token }} | |
set-java-home: 'false' | |
- name: "β Check and test the plugin" | |
run: ./gradlew :native-maven-plugin:functionalTest | |
- name: "π Upload functional tests results" | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: functional-tests-results-graalvm-dev | |
path: native-maven-plugin/build/reports/tests/functionalTest/ |