diff --git a/.github/workflows/nightly-builds.yml b/.github/workflows/nightly-builds.yml new file mode 100644 index 0000000000..b6606637f4 --- /dev/null +++ b/.github/workflows/nightly-builds.yml @@ -0,0 +1,141 @@ +name: Nightly Builds + +on: + pull_request: +# FIXME uncomment and remove pull_request above before merging +# schedule: +# - cron: "0 0 * * *" + +jobs: + + nightly-cluster-metrics-sigar: + name: Akka Cluster Metrics Test with Sigar + runs-on: ubuntu-20.04 + steps: + + - name: Checkout + uses: actions/checkout@v2 + with: + # we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves + fetch-depth: 0 + + - name: Set up JDK 8 + uses: olafurpg/setup-scala@v10 + with: + java-version: adopt@1.8.0 + + - name: Cache Coursier cache + uses: coursier/cache-action@v6.2 + + - name: sbt akka-cluster-metrics/test + run: |- + sbt -jvm-opts .jvmopts-ci \ + -Djava.security.egd=file:/dev/./urandom \ + -Dakka.test.sigar=true \ + -Dakka.cluster.assert=on \ + -Dakka.test.timefactor=10 \ + -Dakka.test.tags.exclude=gh-exclude \ + clean akka-cluster-metrics/test + + - name: Test Reports + # Makes it easier to spot failures instead of looking at the logs. + if: ${{ failure() }} + uses: marcospereira/action-surefire-report@v1 + with: + report_paths: '**/target/test-reports/TEST-*.xml' + fail_if_no_tests: false + skip_publishing: true + + - 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}} + + jdk-nightly-tests: + name: JDK ${{ matrix.jdkVersion }} / Scala ${{ matrix.scalaVersion }} + runs-on: ubuntu-20.04 + strategy: + matrix: + # No need to specify the full Scala version. Only the Scala binary version + # is required and Akka build will set the right full version from it. + scalaVersion: ["2.12", "2.13"] + jdkVersion: ["adopt@1.8.0", "adopt@1.11"] + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up JDK ${{ matrix.jdkVersion }} + uses: olafurpg/setup-scala@v10 + with: + java-version: ${{ matrix.jdkVersion }} + + - name: Cache Coursier cache + uses: coursier/cache-action@v6.2 + + # Only run multijvm tests in Scala 2.13. No need to run it to + # multiple Scala versions AND multiple JDK versions. This will + # run multijvm tests to run for both JDK 8 and 11 though. + - name: Compile and Test + run: |- + ## TODO: restore the multi-node tests + sbt -jvm-opts .jvmopts-ci \ + -Dakka.build.scalaVersion=${{ matrix.scalaVersion }} \ + -Dakka.test.timefactor=10 \ + -Dakka.cluster.assert=on \ + -Dakka.test.multi-in-test=${{ matrix.scalaVersion == '2.13' }} \ + -Dakka.test.tags.exclude=gh-exclude \ + clean update Test/compile test checkTestsHaveRun + + - name: Test Reports + # Makes it easier to spot failures instead of looking at the logs. + if: ${{ failure() }} + uses: marcospereira/action-surefire-report@v1 + with: + report_paths: '**/target/test-reports/TEST-*.xml' + fail_if_no_tests: false + skip_publishing: true + + - name: Docs + # Docs generation requires JDK 11. Checks with `startsWith` helps + # the check to be more resilient if the JDK version changes to a + # more specific one such as adopt@1.11.0-9. + if: ${{ startsWith(matrix.jdkVersion, 'adopt@1.11') }} + run: |- + sudo apt-get install graphviz + sbt -jvm-opts .jvmopts-ci \ + -Dakka.build.scalaVersion=${{ matrix.scalaVersion }} \ + -Dakka.genjavadoc.enabled=true \ + doc + + - name: Publish + run: |- + sbt -jvm-opts .jvmopts-ci \ + -Dakka.build.scalaVersion=${{ matrix.scalaVersion }} \ + publishLocal publishM2 + + - 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}} diff --git a/.github/workflows/nightly-cluster-metrics-sigar.yml b/.github/workflows/nightly-cluster-metrics-sigar.yml deleted file mode 100644 index d891c6bf07..0000000000 --- a/.github/workflows/nightly-cluster-metrics-sigar.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Nightly Akka Cluster Metrics Test with Sigar - -on: - schedule: - - cron: '0 0 * * *' - -jobs: - sbt: - name: Test Akka Cluster Metrics - runs-on: ubuntu-18.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - # we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves - fetch-depth: 0 - - name: Set up JDK 8 - uses: olafurpg/setup-scala@v10 - with: - java-version: adopt@1.8.0 - - name: Test - run: |- - sbt -jvm-opts .jvmopts-ci \ - -Djava.security.egd=file:/dev/./urandom \ - -Dakka.test.sigar=true \ - -Dakka.cluster.assert=on \ - clean akka-cluster-metrics/test - - name: Email on failure - if: ${{ failure() }} - uses: dawidd6/action-send-mail@v3 - with: - server_address: smtp.gmail.com - server_port: 465 - # Using port 465 already sets `secure: true` - secure: true - username: ${{secrets.MAIL_USERNAME}} - password: ${{secrets.MAIL_PASSWORD}} - subject: PRValidation Failed (Akka) - to: akka.official@gmail.com - from: Akka CI (GHActions) - body: | - Nightly Akka Cluster Metrics Test with Sigar of ${{github.repository}} failed! - https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} diff --git a/.github/workflows/nightly-jdk11.yml b/.github/workflows/nightly-jdk11.yml deleted file mode 100644 index 37147c19d0..0000000000 --- a/.github/workflows/nightly-jdk11.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Nightly jkd11 - -on: - schedule: - - cron: '0 6 * * *' - -jobs: - compile-and-test: - name: Compile and test - runs-on: ubuntu-20.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Set up JDK 11 - uses: olafurpg/setup-scala@v10 - with: - java-version: adopt@1.11 - - - name: Cache Coursier cache - uses: coursier/cache-action@v6.2 - - - name: Compile and test for JDK11 - run: |- - sbt -jvm-opts .jvmopts-ci \ - -Dakka.test.timefactor=1 \ - -Dakka.genjavadoc.enabled=true \ - -Dakka.test.multi-in-test=false \ - clean test checkTestsHaveRun - - - 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: Nightly jkd11 Failed (Akka) - to: akka.official@gmail.com - from: Akka CI (GHActions) - body: | - Nightly jkd11 of ${{github.repository}} failed! - https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} diff --git a/.github/workflows/nightly-jdk8-scala2.13.yml b/.github/workflows/nightly-jdk8-scala2.13.yml deleted file mode 100644 index 8760932847..0000000000 --- a/.github/workflows/nightly-jdk8-scala2.13.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Nightly jdk8/scala2.13 -on: - schedule: - - cron: '0 20 * * *' - -jobs: - compile-and-test: - name: Compile and test - runs-on: ubuntu-20.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Set up JDK 8 - uses: olafurpg/setup-scala@v10 - with: - java-version: adopt@1.8.0 - - - name: Cache Coursier cache - uses: coursier/cache-action@v6.2 - - - name: Compile and test for JDK8 (scala2.13) - run: |- - # TODO: restore -Dakka.test.multi-node.java=/usr/lib/jvm/jdk8u192-b12/bin/java - sbt -jvm-opts .jvmopts-ci \ - -Dakka.ci-server=true \ - -Dakka.build.scalaVersion=2.13.3 \ - -Dakka.test.timefactor=1 \ - -Dakka.cluster.assert=on \ - clean compile test doc - - - 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: Nightly jdk8/scala2.13 Failed (Akka) - to: akka.official@gmail.com - from: Akka CI (GHActions) - body: | - Nightly jdk8/scala2.13 of ${{github.repository}} failed! - https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} diff --git a/.github/workflows/nightly-jdk8.yml b/.github/workflows/nightly-jdk8.yml deleted file mode 100644 index 49c321bb37..0000000000 --- a/.github/workflows/nightly-jdk8.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Nightly jkd8 - -on: - schedule: - - cron: '0 4,21 * * *' - -jobs: - compile-and-test: - name: Compile and test - runs-on: ubuntu-20.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - name: Set up JDK 8 - uses: olafurpg/setup-scala@v10 - with: - java-version: adopt@1.8.0 - - - name: Cache Coursier cache - uses: coursier/cache-action@v6.2 - - - name: Compile and test for JDK ${{ matrix.JABBA_JDK }}, Scala ${{ matrix.SCALA_VERSION }} - run: |- - ## TODO: restore the multi-node tests - sbt -jvm-opts .jvmopts-ci \ - -Dakka.ci-server=true \ - -Dakka.test.timefactor=1 \ - -Dakka.cluster.assert=on \ - -Dakka.test.metrics.reporters.0=console \ - -Dakka.test.metrics.reporters.1=graphit \ - -Dakka.test.metrics.reporter.graphite.prefix=jenkins \ - -Dakka.test.metrics.reporter.graphite.host=54.72.154.120 \ - -Dakka.sbt.statsd=false \ - clean update test:compile test publishLocal publishM2 - - - 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: Nightly jdk8 Failed (Akka) - to: akka.official@gmail.com - from: Akka CI (GHActions) - body: | - Nightly jdk8 of ${{github.repository}} failed! - https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}