CI: don't use ubuntu-latest (#247) #624
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: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- 1.0.x | |
tags-ignore: [ v.* ] | |
permissions: {} | |
concurrency: | |
group: ${{ github.workflow }} @ ${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
PEKKO_TEST_TIMEFACTOR: 10.0 | |
EVENT_NAME: ${{ github.event_name }} | |
jobs: | |
check-code-style: | |
name: Check Code Style | |
runs-on: ubuntu-22.04 | |
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: Checkout GitHub merge | |
if: github.event.pull_request | |
run: |- | |
git fetch origin pull/${{ github.event.pull_request.number }}/merge:scratch | |
git checkout scratch | |
- 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: Code style check and binary-compatibility check | |
# Run locally with: sbt 'javafmtCheckAll; mimaReportBinaryIssues' | |
run: sbt "javafmtCheckAll; mimaReportBinaryIssues" | |
check-code-compilation: | |
name: Check Code Compilation | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Checkout GitHub merge | |
if: github.event.pull_request | |
run: |- | |
git fetch origin pull/${{ github.event.pull_request.number }}/merge:scratch | |
git checkout scratch | |
- 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: Compile all code with fatal warnings for Java 11 and Scala 2.12/2.13/3 | |
# Run locally with: env CI=true sbt 'clean ; Test/compile ; It/compile' | |
run: sbt "; +Test/compile; +It/compile" | |
check-docs: | |
name: Check Docs | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Checkout GitHub merge | |
if: github.event.pull_request | |
run: |- | |
git fetch origin pull/${{ github.event.pull_request.number }}/merge:scratch | |
git checkout scratch | |
- 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: Create all API docs for artifacts/website and all reference docs | |
run: sbt "doc ; unidoc ; docs/paradoxBrowse" | |
test: | |
name: Build and Test | |
runs-on: ubuntu-22.04 | |
needs: [check-code-style, check-code-compilation, check-docs] | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { java-version: 8, scala-version: 2.12, sbt-opts: '' } | |
- { java-version: 11, scala-version: 2.12, sbt-opts: '-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' } | |
- { java-version: 8, scala-version: 2.13, sbt-opts: '' } | |
- { java-version: 11, scala-version: 2.13, sbt-opts: '-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' } | |
- { java-version: 8, scala-version: 3.3, sbt-opts: '' } | |
- { java-version: 11, scala-version: 3.3, sbt-opts: '-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' } | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Checkout GitHub merge | |
if: github.event.pull_request | |
run: |- | |
git fetch origin pull/${{ github.event.pull_request.number }}/merge:scratch | |
git checkout scratch | |
- name: Setup Java ${{ matrix.java-version }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ matrix.java-version }} | |
- name: Cache Coursier cache | |
uses: coursier/cache-action@v6 | |
- name: Run tests with Scala ${{ matrix.scala-version }} and Java ${{ matrix.java-version }} | |
run: sbt "++${{ matrix.scala-version }} test" ${{ matrix.sbt-opts }} | |
- name: Print logs on failure | |
if: ${{ failure() }} | |
run: find . -name "*.log" -exec ./scripts/cat-log.sh {} \; | |
integration-test: | |
name: Integration tests | |
needs: [check-code-style, check-code-compilation, check-docs] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Checkout GitHub merge | |
if: github.event.pull_request | |
run: |- | |
git fetch origin pull/${{ github.event.pull_request.number }}/merge:scratch | |
git checkout scratch | |
- name: Setup Java 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 8 | |
- name: Cache Coursier cache | |
uses: coursier/cache-action@v6 | |
- name: Run multi-broker and long running integration tests | |
run: sbt "tests/IntegrationTest/test" | |
- name: Print logs on failure | |
if: ${{ failure() }} | |
run: find . -name "*.log" -exec ./scripts/cat-log.sh {} \; | |
build-benchmark: | |
name: Build benchmarks | |
needs: [check-code-style, check-code-compilation, check-docs] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Checkout GitHub merge | |
if: github.event.pull_request | |
run: |- | |
git fetch origin pull/${{ github.event.pull_request.number }}/merge:scratch | |
git checkout scratch | |
- name: Setup Java 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 8 | |
- name: Cache Coursier cache | |
uses: coursier/cache-action@v6 | |
- name: "Compile benchmark tests" | |
run: sbt "benchmarks/IntegrationTest/compile" |