Skip to content

Update kyo-compat-ce, kyo-compat-future, ... to 1.0.0-RC5 #380

Update kyo-compat-ce, kyo-compat-future, ... to 1.0.0-RC5

Update kyo-compat-ce, kyo-compat-future, ... to 1.0.0-RC5 #380

Workflow file for this run

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