diff --git a/.github/workflows/artifactory.yaml b/.github/workflows/artifactory.yaml new file mode 100644 index 000000000..490047c88 --- /dev/null +++ b/.github/workflows/artifactory.yaml @@ -0,0 +1,25 @@ +name: Artifactory + +on: + workflow_dispatch: # manual trigger + #release: + # types: [published] + +jobs: + publish: + # if: startsWith(github.event.ref, 'release/') + name: publish + runs-on: ubuntu-latest + 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: 11 + distribution: microsoft + cache: gradle + - uses: gradle/actions/setup-gradle@v4 # v4.0.0 + - name: publish + run: | + ./gradlew :artifactoryPublish :cruise-control:artifactoryPublish :cruise-control-core:artifactoryPublish :cruise-control-metrics-reporter:artifactoryPublish diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 000000000..fb450d9c8 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,80 @@ +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 }} + cache: gradle + # 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 }} + cache: gradle + # 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