Run timing sensitive tests in separate job, #30716 (#31149)

* better to exlude TimingTests and only run them in separate
  job so that we see more easily when those fail in CI
  (and lower prio to fix them in CI)
* BoundedBlockingQueueSpec has many timing sensitive things,
  hardened it and marked as TimingTest
This commit is contained in:
Patrik Nordwall 2022-02-21 15:34:45 +01:00 committed by GitHub
parent bc75f43093
commit 4412529a39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 189 additions and 68 deletions

View file

@ -60,7 +60,7 @@ jobs:
-Dakka.test.multi-in-test=false \
-Dakka.test.timefactor=2 \
-Dakka.actor.testkit.typed.timefactor=2 \
-Dakka.test.tags.exclude=gh-exclude \
-Dakka.test.tags.exclude=gh-exclude,timing \
-Dakka.cluster.assert=on \
-Dsbt.override.build.repos=false \
-Dakka.test.multi-node=false \

View file

@ -53,7 +53,7 @@ jobs:
sbt -jvm-opts .jvmopts-ci \
-Dakka.test.timefactor=2 \
-Dakka.actor.testkit.typed.timefactor=2 \
-Dakka.test.tags.exclude=gh-exclude \
-Dakka.test.tags.exclude=gh-exclude,timing \
-Dakka.cluster.assert=on \
-Dsbt.override.build.repos=false \
-Dakka.test.multi-node=true \
@ -138,11 +138,11 @@ jobs:
sbt -jvm-opts .jvmopts-ci \
-Dakka.test.timefactor=2 \
-Dakka.actor.testkit.typed.timefactor=2 \
-Dakka.test.tags.exclude=gh-exclude \
-Dakka.test.tags.exclude=gh-exclude,timing \
-Dakka.cluster.assert=on \
-Dakka.remote.artery.transport=aeron-udp \
-Dsbt.override.build.repos=false \
-Dakka.test.tags.exclude=gh-exclude \
-Dakka.test.tags.exclude=gh-exclude,timing \
-Dakka.test.multi-node=true \
-Dakka.test.multi-node.targetDirName=${PWD}/target/${{ github.run_id }} \
-Dakka.test.multi-node.java=${JAVA_HOME}/bin/java \

View file

@ -34,7 +34,7 @@ jobs:
-Dakka.cluster.assert=on \
-Dakka.test.timefactor=2 \
-Dakka.actor.testkit.typed.timefactor=2 \
-Dakka.test.tags.exclude=gh-exclude \
-Dakka.test.tags.exclude=gh-exclude,timing \
-Dakka.log.timestamps=true \
-Dmultinode.XX:MetaspaceSize=128M \
-Dmultinode.Xms256M \
@ -100,7 +100,7 @@ jobs:
-Dakka.remote.artery.enabled=off \
-Dakka.test.timefactor=2 \
-Dakka.actor.testkit.typed.timefactor=2 \
-Dakka.test.tags.exclude=gh-exclude \
-Dakka.test.tags.exclude=gh-exclude,timing \
-Dakka.cluster.assert=on \
-Dakka.test.names.exclude=akka.cluster.Stress \
-Dmultinode.XX:MetaspaceSize=128M \
@ -151,7 +151,7 @@ jobs:
-Dakka.log.timestamps=true \
-Dakka.test.timefactor=2 \
-Dakka.actor.testkit.typed.timefactor=2 \
-Dakka.test.tags.exclude=gh-exclude \
-Dakka.test.tags.exclude=gh-exclude,timing \
-Dakka.test.multi-in-test=false \
-Dmultinode.XX:MetaspaceSize=128M \
-Dmultinode.Xms256M \

View file

@ -52,7 +52,7 @@ jobs:
-Dakka.test.timefactor=2 \
-Dakka.actor.testkit.typed.timefactor=2 \
-Dakka.test.multi-in-test=false \
-Dakka.test.tags.exclude=gh-exclude \
-Dakka.test.tags.exclude=gh-exclude,timing \
-Dmultinode.XX:MetaspaceSize=128M \
-Dmultinode.Xms256M \
-Dmultinode.Xmx256M \

66
.github/workflows/timing-tests.yml vendored Normal file
View file

@ -0,0 +1,66 @@
name: Timing sensitive tests
on:
schedule:
- cron: "0 0 * * *"
jobs:
akka-timing-sensitive-tests:
name: Akka Tests taggedAs TimingTest
runs-on: ubuntu-20.04
if: github.repository == 'akka/akka'
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: sbt test
run: |-
sbt -jvm-opts .jvmopts-ci \
-Djava.security.egd=file:/dev/./urandom \
-Dakka.cluster.assert=on \
-Dakka.test.timefactor=2 \
-Dakka.actor.testkit.typed.timefactor=2 \
-Dakka.test.tags.only=timing \
-Dakka.log.timestamps=true \
-Dmultinode.XX:MetaspaceSize=128M \
-Dmultinode.Xms256M \
-Dmultinode.Xmx256M \
-Dmultinode.Xlog:gc \
-Dmultinode.XX:+AlwaysActAsServerClassMachine \
clean 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}}