Update kyo-compat-ce, kyo-compat-future, ... to 1.0.0-RC5 #380
Workflow file for this run
This file contains hidden or 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'] | |
| tags: ['v*'] | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Scala and Java | |
| uses: coursier/setup-action@v3 | |
| with: | |
| jvm: temurin:25 | |
| apps: sbt | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v8 | |
| - name: Lint code | |
| run: sbt check | |
| unit: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Scala and Java | |
| uses: coursier/setup-action@v3 | |
| with: | |
| jvm: temurin:25 | |
| apps: sbt | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v8 | |
| - name: Run unit tests | |
| run: sbt testUnit | |
| docs: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Scala and Java | |
| uses: coursier/setup-action@v3 | |
| with: | |
| jvm: temurin:25 | |
| apps: sbt | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v8 | |
| # scaladoc drops -Werror and never fails on warnings, so capture the log and fail on any link/markup warning ourselves | |
| - name: Build API docs (no Scaladoc warnings) | |
| run: | | |
| set -o pipefail | |
| sbt -batch docAll 2>&1 | tee doc.log | |
| if grep -E "Couldn't resolve|-- (\[E\] )?(Warning|Error)" doc.log; then | |
| echo "::error::Scaladoc emitted warnings; see the log above" | |
| exit 1 | |
| fi | |
| integration: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| backend: [Zio, Ce, Ox, Pekko, Kyo] | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Scala and Java | |
| uses: coursier/setup-action@v3 | |
| with: | |
| jvm: temurin:25 | |
| apps: sbt | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v8 | |
| - name: Restore server images | |
| id: images | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.docker-images | |
| # keep the tags here in sync with integration-tests Images.scala; bump the key when they change | |
| key: docker-images-v2-redis8.8.0-valkey9.1.0-redis6.2 | |
| - name: Pull and save server images | |
| if: steps.images.outputs.cache-hit != 'true' | |
| run: | | |
| mkdir -p ~/.docker-images | |
| for img in redis:8.8.0 valkey/valkey:9.1.0 redis:6.2; do | |
| docker pull "$img" | |
| docker save "$img" -o ~/.docker-images/"${img//[\/:]/_}".tar | |
| done | |
| - name: Load server images | |
| if: steps.images.outputs.cache-hit == 'true' | |
| run: for f in ~/.docker-images/*.tar; do docker load -i "$f"; done | |
| - name: Run integration tests | |
| run: sbt it${{ matrix.backend }} | |
| env: | |
| # ryuk adds a mandatory Docker Hub pull per run (rate-limit exposure) and ephemeral runners need no reaper | |
| TESTCONTAINERS_RYUK_DISABLED: "true" | |
| publish: | |
| runs-on: ubuntu-24.04 | |
| needs: [lint, unit, integration] | |
| if: github.event_name != 'pull_request' | |
| steps: | |
| - name: Checkout current branch | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Scala and Java | |
| uses: coursier/setup-action@v3 | |
| with: | |
| jvm: temurin:25 | |
| apps: sbt | |
| - name: Cache scala dependencies | |
| uses: coursier/cache-action@v8 | |
| - name: Release artifacts | |
| run: sbt ci-release | |
| env: | |
| PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
| PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
| SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
| SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} |