fix: handle adapted java source providers for replay #2043
Workflow file for this run
This file contains 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: 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-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` |