name: Build and test Pekko with Scala 3 on: schedule: - cron: "0 0 * * *" workflow_dispatch: permissions: {} concurrency: # Only run once for latest commit per ref and cancel other (previous) runs. group: ci-scala3-${{ github.ref }} cancel-in-progress: true jobs: test: name: Test runs-on: ubuntu-20.04 if: github.repository == 'apache/pekko' strategy: matrix: command: - testkit/test actor-tests/test - actor-testkit-typed/test actor-typed-tests/test - bench-jmh/test - cluster/test cluster-tools/test cluster-typed/test distributed-data/test cluster-metrics/test cluster-sharding/test cluster-sharding-typed/test - discovery/test coordination/test - persistence/test persistence-shared/test persistence-query/test persistence-typed/test persistence-testkit/test persistence-tck/test persistence-typed-tests/test - pki/test slf4j/test - serialization-jackson/test - stream/test stream-testkit/test stream-tests/test stream-typed/test stream-typed-tests/test - stream-tests-tck/test - remote/test remote-tests/test protobuf-v3/test fail-fast: true steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Setup Java 11 uses: actions/setup-java@v4 with: distribution: temurin java-version: 11 - name: Cache Coursier cache uses: coursier/cache-action@v6 - name: Enable jvm-opts run: cp .jvmopts-ci .jvmopts - name: Compile and run tests on Scala 3 # note that this is not running any multi-jvm tests (yet) because multi-in-test=false run: | sbt \ -Dpekko.log.timestamps=true \ -Dpekko.test.timefactor=2 \ -Dpekko.actor.testkit.typed.timefactor=2 \ -Dpekko.test.multi-in-test=false \ -Dpekko.test.tags.exclude=gh-exclude,timing \ -Dmultinode.XX:MetaspaceSize=128M \ -Dmultinode.Xms256M \ -Dmultinode.Xmx256M \ -Dmultinode.XX:+AlwaysActAsServerClassMachine \ "+~ 3 ${{ matrix.command }}" # comment out email actions until we have an email address to use (and we need to get INFRA to whitelist dawidd6/action-send-mail) #- name: Email on failure # if: ${{ failure() }} # uses: dawidd6/action-send-mail@v3 # with: # server_address: smtp.gmail.com # server_port: 465 # username: ${{secrets.MAIL_USERNAME}} # password: ${{secrets.MAIL_PASSWORD}} # subject: "Failed: ${{ github.workflow }} / ${{ github.job }}" # to: akka.official@gmail.com # from: Akka CI (GHActions) # body: | # Job ${{ github.job }} in workflow ${{ github.workflow }} of ${{github.repository}} failed! # https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}