| 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" |