# Licensed to the Apache Software Foundation (ASF) under one or more # license agreements; and to You under the Apache License, version 2.0: # # https://www.apache.org/licenses/LICENSE-2.0 # # This file is part of the Apache Pekko project, which was derived from Akka. # name: Pull Requests on: pull_request: permissions: {} concurrency: # Only run once for latest commit per ref and cancel other (previous) runs. group: ci-${{ github.ref }} cancel-in-progress: true jobs: check-code-style: name: Check / Code Style runs-on: ubuntu-22.04 env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - name: Checkout uses: actions/checkout@v4 with: # we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves fetch-depth: 0 fetch-tags: true - name: Cache Coursier cache uses: coursier/cache-action@v6 - name: Setup Java 8 uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 - name: Install sbt uses: sbt/setup-sbt@v1 - name: Code style check run: |- cp .jvmopts-ci .jvmopts sbt \ -Dsbt.override.build.repos=false \ -Dsbt.log.noformat=false \ javafmtCheckAll pull-request-validation: name: Check / Tests runs-on: ubuntu-22.04 env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - name: Checkout uses: actions/checkout@v4 with: # we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves fetch-depth: 0 fetch-tags: 0 - name: Setup Java 8 uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 - name: Install sbt uses: sbt/setup-sbt@v1 - name: Cache Coursier cache uses: coursier/cache-action@v6 - name: Enable jvm-opts run: cp .jvmopts-ci .jvmopts - name: sbt validateCompile run: |- sbt \ -Dpekko.mima.enabled=false \ -Dpekko.test.multi-in-test=false \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ -Dpekko.test.tags.exclude=gh-exclude,timing \ -Dpekko.cluster.assert=on \ -Dsbt.override.build.repos=false \ -Dpekko.test.multi-node=false \ -Dsbt.log.noformat=false \ -Dpekko.log.timestamps=true \ validateCompile - name: sbt validatePullRequest run: |- sbt \ -Dpekko.mima.enabled=false \ -Dpekko.test.multi-in-test=false \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ -Dpekko.test.tags.exclude=gh-exclude,timing \ -Dpekko.cluster.assert=on \ -Dsbt.override.build.repos=false \ -Dpekko.test.multi-node=false \ -Dsbt.log.noformat=false \ -Dpekko.log.timestamps=true \ -Dio.netty.leakDetection.level=PARANOID \ validatePullRequest pekko-classic-remoting-tests: name: Pekko Classic Remoting Tests runs-on: ubuntu-22.04 if: github.repository == 'apache/pekko' strategy: fail-fast: false matrix: command: - cluster/test distributed-data/test cluster-tools/test cluster-metrics/test steps: - name: Checkout uses: actions/checkout@v4 with: # we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves fetch-depth: 0 fetch-tags: true - name: Setup Java 11 uses: actions/setup-java@v4 with: distribution: temurin java-version: 11 - name: Install sbt uses: sbt/setup-sbt@v1 - name: Cache Coursier cache uses: coursier/cache-action@v6 - name: Enable jvm-opts run: cp .jvmopts-ci .jvmopts - name: sbt ${{ matrix.command }} env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} # note that this is not running any multi-jvm tests because multi-in-test=false run: |- sbt \ -Djava.security.egd=file:/dev/./urandom \ -Dpekko.remote.artery.enabled=off \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ -Dpekko.test.tags.exclude=gh-exclude,timing \ -Dpekko.test.multi-in-test=false \ -Dpekko.cluster.assert=on \ clean ${{ matrix.command }} jdk-21-extra-tests: name: Java 21 Extra Tests (including all tests that need Java 9+) runs-on: ubuntu-22.04 env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - name: Checkout uses: actions/checkout@v4 with: # we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves fetch-depth: 0 fetch-tags: 0 - name: Setup Java 21 uses: actions/setup-java@v4 with: distribution: temurin java-version: 21 - name: Install sbt uses: sbt/setup-sbt@v1 - name: Cache Coursier cache uses: coursier/cache-action@v6 - name: Enable jvm-opts run: cp .jvmopts-ci .jvmopts - name: sbt TestJdk9/test run: |- sbt \ -Dpekko.mima.enabled=false \ -Dpekko.test.multi-in-test=false \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ -Dpekko.test.tags.exclude=gh-exclude,timing \ -Dpekko.cluster.assert=on \ -Dsbt.override.build.repos=false \ -Dpekko.test.multi-node=false \ -Dsbt.log.noformat=false \ -Dpekko.log.timestamps=true \ -Dio.netty.leakDetection.level=PARANOID \ TestJdk9/test