Multi node test with Aeron #19
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Multi node test with Aeron | |
on: | |
schedule: | |
- cron: '0 4 * * 1,3' | |
workflow_dispatch: | |
permissions: | |
contents: 'read' | |
# needed for google-github-actions 1.0.1 | |
id-token: 'write' | |
env: | |
USE_GKE_GCLOUD_AUTH_PLUGIN: True | |
concurrency: | |
# Only run once for latest commit per ref and cancel other (previous) runs. | |
group: ci-multi-node-aeron-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
run-multi-node-aeron-tests: | |
name: Multi Node Test with Artery Aeron UDP transport | |
runs-on: ubuntu-22.04 | |
if: github.repository == 'akka/akka' | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Install Kubectl | |
run: | | |
sudo snap install kubectl --classic | |
# https://github.com/google-github-actions/auth/releases | |
# v1.0.0 | |
- name: Authenticate to Google Cloud | |
uses: google-github-actions/auth@ef5d53e30bbcd8d0836f4288f5e50ff3e086997d | |
with: | |
project_id: ${{ secrets.GKE_PROJECT }} | |
credentials_json: ${{ secrets.GKE_SA_KEY }} | |
# https://github.com/google-github-actions/setup-gcloud/releases | |
# v1.0.1 | |
- name: Install gcloud cli | |
uses: google-github-actions/setup-gcloud@d51b5346f85640ec2aa2fa057354d2b82c2fcbce | |
with: | |
project_id: ${{ secrets.GKE_PROJECT }} | |
- name: Create the cluster | |
run: |- | |
gcloud components install gke-gcloud-auth-plugin | |
gcloud config set compute/region us-central1 | |
gcloud config set compute/zone us-central1-c | |
./kubernetes/create-cluster-gke.sh "akka-artery-aeron-cluster-${GITHUB_RUN_ID}" | |
- name: Setup Pods | |
run: | | |
# Start 10 pods. At most 10 MultiJvmNode (akka.cluster.StressSpec is currently disabled). | |
./kubernetes/setup.sh 10 multi-node-test.hosts udp | |
- name: Cache Coursier cache | |
uses: coursier/[email protected] | |
- name: Set up JDK 17 | |
uses: coursier/[email protected] | |
with: | |
jvm: temurin:1.17 | |
- name: Multi node test with Artery Aeron UDP | |
run: | | |
cat multi-node-test.hosts | |
cp .jvmopts-ci .jvmopts | |
sbt \ | |
-Dakka.test.timefactor=2 \ | |
-Dakka.actor.testkit.typed.timefactor=2 \ | |
-Dakka.cluster.assert=on \ | |
-Dakka.remote.artery.transport=aeron-udp \ | |
-Dsbt.override.build.repos=false \ | |
-Dakka.test.tags.exclude=gh-exclude,gh-exclude-aeron,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 \ | |
-Dmultinode.XX:MetaspaceSize=128M \ | |
-Dmultinode.Xms512M \ | |
-Dmultinode.Xmx512M \ | |
-Dmultinode.Xlog:gc \ | |
-Dmultinode.XX:+AlwaysActAsServerClassMachine \ | |
multiNodeTest | |
- name: Email on failure | |
if: ${{ failure() }} | |
uses: dawidd6/action-send-mail@6063705cefe50cb915fc53bb06d4049cae2953b2 | |
with: | |
server_address: smtp.gmail.com | |
server_port: 465 | |
secure: true | |
username: ${{secrets.MAIL_USERNAME}} | |
password: ${{secrets.MAIL_PASSWORD}} | |
subject: "Failed: ${{ github.workflow }} / ${{ github.job }}" | |
to: ${{secrets.MAIL_SEND_TO}} | |
from: Akka CI | |
body: | | |
Job ${{ github.job }} in workflow ${{ github.workflow }} of ${{github.repository}} failed! | |
https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} | |
- name: Cleanup the environment | |
if: ${{ always() }} | |
shell: bash {0} | |
run: | | |
gcloud container clusters delete "akka-artery-aeron-cluster-${GITHUB_RUN_ID}" --quiet |