name: e2e run-name: ${{ format('{0} ({1})', github.workflow, github.ref_name) }} on: workflow_dispatch: jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - nickname: win os: windows-2022 graal: 22.3.0 musl: false - nickname: macos os: macos-12 graal: 22.3.0 musl: false - nickname: linux os: ubuntu-22.04 graal: 22.3.0 musl: true name: Compile ${{ matrix.nickname }} steps: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 with: version: ${{ matrix.graal }} java-version: 17 components: native-image native-image-musl: ${{ matrix.musl }} github-token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/setup-node@v2 with: node-version: '16' - run: | ./gradlew clean build nativeCompile -PspringShellSampleMusl=${{ matrix.musl }} -PspringShellSampleE2E=true timeout-minutes: 30 - uses: actions/upload-artifact@v3 with: name: spring-shell-samples-${{ matrix.nickname }} retention-days: 1 path: | spring-shell-samples/build/libs/*.jar spring-shell-samples/build/native/nativeCompile/spring-shell-samples spring-shell-samples/build/native/nativeCompile/spring-shell-samples.exe - name: Upload Build Logs if: ${{ failure() }} uses: actions/upload-artifact@v3 with: name: buildlogs-${{ matrix.nickname }} path: | */build/reports */*/build/reports e2e: runs-on: ${{ matrix.os }} needs: build strategy: fail-fast: false matrix: include: - os: windows-2022 nickname: win # - os: windows-2019 # nickname: win - os: macos-12 nickname: macos - os: macos-11 nickname: macos - os: ubuntu-22.04 nickname: linux - os: ubuntu-20.04 nickname: linux name: E2E ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: distribution: adopt java-version: 17 cache: gradle - uses: actions/setup-node@v2 with: node-version: '16' - name: compile e2e module working-directory: e2e/spring-shell-e2e run: | npm install npm run build - uses: actions/download-artifact@v3 with: name: spring-shell-samples-${{ matrix.nickname }} path: spring-shell-samples/build - name: fix artifacts if: runner.os != 'Windows' shell: bash run: | chmod +x spring-shell-samples/build/native/nativeCompile/spring-shell-samples - name: run e2e tests working-directory: e2e/spring-shell-e2e-tests run: | npm install npm test - name: Publish Test Results uses: EnricoMi/publish-unit-test-result-action/composite@v1 if: always() with: files: e2e/spring-shell-e2e-tests/junit.xml