Skip to content

bump: Bump Scala to fix samples on sbt 1.10.0 #1753

bump: Bump Scala to fix samples on sbt 1.10.0

bump: Bump Scala to fix samples on sbt 1.10.0 #1753

Workflow file for this run

name: Basic checks
on:
pull_request:
push:
branches:
- main
tags-ignore: [ v.* ]
permissions:
contents: read
jobs:
check-code-style:
name: Check Code Style
runs-on: ubuntu-22.04
steps:
- name: Checkout
# https://github.com/actions/checkout/releases
# v4.1.1
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
# we don't know what commit the last tag was it's safer to get entire repo so previousStableVersion resolves
fetch-depth: 0
- 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: Cache Coursier cache
# https://github.com/coursier/cache-action/releases
# v6.4.5
uses: coursier/cache-action@1ff273bff02a8787bc9f1877d347948af647956d
- name: Set up JDK 11
# https://github.com/coursier/setup-action/releases
# v1.3.5
uses: coursier/setup-action@7bde40eee928896f074dbb76d22dd772eed5c65f
with:
jvm: temurin:1.11
- name: Code style check and binary-compatibility check
run: sbt "verifyCodeStyle; mimaReportBinaryIssues"
check-code-compilation:
name: Check Code Compilation
runs-on: ubuntu-22.04
steps:
- name: Checkout
# https://github.com/actions/checkout/releases
# v4.1.1
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- 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: Cache Coursier cache
# https://github.com/coursier/cache-action/releases
# v6.4.5
uses: coursier/cache-action@1ff273bff02a8787bc9f1877d347948af647956d
- name: Set up JDK 11
# https://github.com/coursier/setup-action/releases
# v1.3.5
uses: coursier/setup-action@7bde40eee928896f074dbb76d22dd772eed5c65f
with:
jvm: temurin:1.11
- name: Compile all code with fatal warnings for Java 11, Scala 2.13 and Scala 3
run: sbt "clean ; +compile; +Test/compile; +akka-projection-integration/Test/compile"
check-docs:
name: Check Docs
runs-on: ubuntu-22.04
steps:
- name: Checkout
# https://github.com/actions/checkout/releases
# v4.1.1
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- 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: Cache Coursier cache
# https://github.com/coursier/cache-action/releases
# v6.4.5
uses: coursier/cache-action@1ff273bff02a8787bc9f1877d347948af647956d
- name: Set up JDK 11
# https://github.com/coursier/setup-action/releases
# v1.3.5
uses: coursier/setup-action@7bde40eee928896f074dbb76d22dd772eed5c65f
with:
jvm: temurin:1.11
- name: Create all API docs for artifacts/website and all reference docs
run: sbt "unidoc; docs/paradox; akka-distributed-cluster-docs/paradox; akka-edge-docs/paradox"
check-samples:
name: Check Sample Projects
runs-on: ubuntu-22.04
env:
RUSTFLAGS: -Dwarnings
CARGO_TERM_COLOR: always
PROTOC_VERSION: 3.23.4
steps:
- name: Checkout
# https://github.com/actions/checkout/releases
# v4.1.1
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
fetch-depth: 0
- 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: Cache Coursier cache
# https://github.com/coursier/cache-action/releases
# v6.4.5
uses: coursier/cache-action@1ff273bff02a8787bc9f1877d347948af647956d
- name: Set up JDK 11
# https://github.com/coursier/setup-action/releases
# v1.3.5
uses: coursier/setup-action@7bde40eee928896f074dbb76d22dd772eed5c65f
with:
jvm: temurin:1.11
- name: Update Rust
run: |
rustup update
- name: Install protoc
# https://github.com/taiki-e/install-action/releases
# v2.20.3
uses: taiki-e/install-action@47d27149ff6b3422864ec504071d5cc7873d642e
with:
tool: protoc@${{ env.PROTOC_VERSION }}
- name: Cache Rust
# https://github.com/Swatinem/rust-cache/releases
# v2.7.0
uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43
- name: Gather version
# some cleanup of the sbt output to get the version sbt will use when publishing below
run: |-
sbt --no-colors "print akka-projection-core/version" | tail -n 1 | tr -d '\n' > ~/.version
echo [$(cat ~/.version)]
# useful for debugging: hexdump -c ~/.version
- name: Publish artifacts locally
run: |-
sbt "+publishLocal; publishM2"
- name: Test Scala Projection gRPC sample Shopping Cart
run: |-
cd samples/grpc/shopping-cart-service-scala
sbt test -Dakka-projection.version=`cat ~/.version`
sbt "clean; ++3.3.3!; test;" -Dakka-projection.version=`cat ~/.version`
- name: Compile Scala Projection gRPC sample Analytics
run: |-
cd samples/grpc/shopping-analytics-service-scala
sbt Test/compile -Dakka-projection.version=`cat ~/.version`
sbt "clean; ++3.3.3!; Test/compile;"
- name: Compile Java Projection gRPC sample Shopping Cart
run: |-
cd samples/grpc/shopping-cart-service-java
mvn test -nsu -ntp -Dakka-projection.version=`cat ~/.version`
- name: Compile Java Projection gRPC sample Analytics
run: |-
cd samples/grpc/shopping-analytics-service-java
mvn compile -nsu -ntp -Dakka-projection.version=`cat ~/.version`
- name: Compile Scala Replicated Event Sourcing over gRPC sample Shopping Cart
run: |-
cd samples/replicated/shopping-cart-service-scala
sbt Test/compile -Dakka-projection.version=`cat ~/.version`
sbt "clean; ++3.3.3!; Test/compile;"
- name: Compile Java Replicated Event Sourcing over gRPC sample Shopping Cart
run: |-
cd samples/replicated/shopping-cart-service-java
mvn compile -nsu -ntp -Dakka-projection.version=`cat ~/.version`
- name: Compile Scala Projection gRPC Local Drone Control sample
run: |-
cd samples/grpc/local-drone-control-scala
sbt Test/compile -Dakka-projection.version=`cat ~/.version`
sbt "clean; ++3.3.3!; Test/compile;" -Dakka-projection.version=`cat ~/.version`
- name: Compile Scala Projection gRPC Restaurant Drone Deliveries sample
run: |-
cd samples/grpc/restaurant-drone-deliveries-service-scala
sbt compile -Dakka-projection.version=`cat ~/.version`
sbt "clean; ++3.3.3!; Test/compile;" -Dakka-projection.version=`cat ~/.version`
- name: Compile Java Projection gRPC Local Drone Control sample
run: |-
cd samples/grpc/local-drone-control-java
mvn compile -nsu -ntp -Dakka-projection.version=`cat ~/.version`
- name: Compile Java Projection gRPC Restaurant Drone Deliveries sample
run: |-
cd samples/grpc/restaurant-drone-deliveries-service-java
mvn compile -nsu -ntp -Dakka-projection.version=`cat ~/.version`
- name: Test Scala Projection gRPC IoT service sample
run: |-
cd samples/grpc/iot-service-scala
sbt test -Dakka-projection.version=`cat ~/.version`
sbt "clean; ++3.3.3!; test;" -Dakka-projection.version=`cat ~/.version`
- name: Compile Java Projection gRPC IoT service sample
run: |-
cd samples/grpc/iot-service-java
mvn compile -nsu -ntp -Dakka-projection.version=`cat ~/.version`
- name: Test Rust IoT service sample
run: |-
cd samples/grpc/iot-service-rs
cargo clippy --tests
cargo fmt -- --check
cargo test
- name: gRPC sample Java charger RES identical impl check
run: |-
diff samples/grpc/local-drone-control-java/src/main/java/charging/ChargingStation.java samples/grpc/restaurant-drone-deliveries-service-java/src/main/java/charging/ChargingStation.java
- name: gRPC sample Scala charger RES identical impl check
run: |-
# RES sample should be identical
diff samples/grpc/local-drone-control-scala/src/main/scala/charging/ChargingStation.scala samples/grpc/restaurant-drone-deliveries-service-scala/src/main/scala/charging/ChargingStation.scala
- name: Local drone control sample Scala native image build
run: |-
cd samples/grpc/local-drone-control-scala
sbt nativeImage -Dnative.mode=clustered -Dakka-projection.version=`cat ~/.version`
sbt nativeImage -Dakka-projection.version=`cat ~/.version`
# This will likely be quite noisy, logging failures to connect to restaurant-drone-deliveries service
target/native-image/local-drone-control &
DRONE_CONTROL_PID=$!
sbt "Test/runMain drones.DroneClientTestApp 127.0.0.1 8080" -Dakka-projection.version=`cat ~/.version`
kill -9 $DRONE_CONTROL_PID
- name: Set up GraalVM 21
# https://github.com/coursier/setup-action/releases
# v1.3.5
uses: coursier/setup-action@7bde40eee928896f074dbb76d22dd772eed5c65f
with:
jvm: graalvm-community:21.0.2
- name: Local drone control sample Java native image build
run: |-
cd samples/grpc/local-drone-control-java
mvn -DskipTests=true -Pnative package -nsu -Dakka-projection.version=`cat ~/.version`
mvn -DskipTests=true -Pnative -Pclustered package -nsu -Dakka-projection.version=`cat ~/.version`