From ac6f6afb73d5dadf82f0ba43f60f8ee5855b6164 Mon Sep 17 00:00:00 2001 From: Maryan Hratson Date: Sun, 1 Sep 2024 23:46:03 -0400 Subject: [PATCH] CI workflow with Github Actions ## Summary - initial PR for the series of the PRs - to migrate circleci to github actions ## Testing Done - TBD --- .github/workflows/ci.yaml | 78 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 000000000..98795e81a --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,78 @@ +name: CI + +on: + push: + branches: ['main'] + pull_request: + types: [ opened, synchronize, reopened ] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + test: + name: "test with JDK=${{matrix.java-dist}}:${{matrix.java-ver}}" + runs-on: [ubuntu-latest] + strategy: + fail-fast: false + matrix: + java-ver: [11] + java-dist: ['microsoft', 'temurin'] + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # so gradle doesn't fail traversing the history + - uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-ver }} + distribution: ${{ matrix.java-dist }} + # see: https://github.com/gradle/actions/blob/main/setup-gradle/README.md + - uses: gradle/actions/setup-gradle@v4 # v4.0.0 + - name: gradle build + run: ./gradlew --no-daemon -PmaxParallelForks=1 build + + integration-test: + name: "integration-test with JDK=${{matrix.java-dist}}:${{matrix.java-ver}}" + runs-on: [ubuntu-latest] + strategy: + fail-fast: false + matrix: + java-ver: [11] + java-dist: ['microsoft', 'temurin'] + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # so gradle doesn't fail traversing the history + - uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-ver }} + distribution: ${{ matrix.java-dist }} + # see: https://github.com/gradle/actions/blob/main/setup-gradle/README.md + - uses: gradle/actions/setup-gradle@v4 # v4.0.0 + - name: gradle integration test + run: ./gradlew --no-daemon -PmaxParallelForks=1 clean integrationTest + + build-platform: + name: platform build with JDK=${{matrix.java-dist}}:${{matrix.java-ver}} on ${{matrix.hw_platform}} + strategy: + fail-fast: false + matrix: + java-ver: [11] + java-dist: ['temurin'] + hw_platform: ['s390x'] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # so gradle doesn't fail traversing the history + - run: | + # install required qemu libraries + docker run --rm --privileged tonistiigi/binfmt:latest --install all + # run docker container with qemu emulation + docker run --rm \ + --platform ${{ matrix.hw_platform }} \ + --name qemu-cross-${{ matrix.hw_platform }} \ + --mount type=bind,source=${PWD},target=/workspace \ + --workdir /workspace \ + ${{matrix.hw_platform}}/eclipse-temurin:11-jdk-focal uname -a; ./gradlew --no-daemon -PmaxParallelForks=1 build