Skip to content

CI: don't use ubuntu-latest (#247) #624

CI: don't use ubuntu-latest (#247)

CI: don't use ubuntu-latest (#247) #624

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"