feat: add Apache Pekko to server implementations #1129
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: Adopt Tapir CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- "helm/**" | |
release: | |
types: | |
- released | |
paths-ignore: | |
- "helm/**" | |
jobs: | |
verify_unit_tests_lint: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Check-out repository | |
id: repo-checkout | |
uses: actions/checkout@v3 | |
- name: Set up JDK 17 with sbt cache | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
cache: 'sbt' | |
- name: Check formatting | |
id: check-formatting | |
run: sbt scalafmtCheckAll | |
- name: Run unit tests & lint | |
id: run-unit-tests | |
run: sbt test | |
verify_integration: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
scala: [ "Scala2", "Scala3" ] | |
json: [ "No", "Circe", "UPickle", "Jsoniter", "ZIOJson" ] | |
steps: | |
- name: Check-out repository | |
id: repo-checkout | |
uses: actions/checkout@v3 | |
- name: Cache scala-cli | |
uses: coursier/[email protected] | |
- name: Set up scala-cli | |
uses: VirtusLab/[email protected] | |
with: | |
jvm: temurin:17 | |
- name: Cache SBT | |
id: cache-sbt | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.sbt | |
~/.ivy2/cache | |
~/.coursier | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }} | |
- name: Run integration tests for ${{ matrix.scala }} with ${{ matrix.json }} JSON support | |
run: SCALA=${{ matrix.scala }} JSON=${{ matrix.json }} IT_TESTS_THREADS_NO=1 sbt 'ItTest / test' | |
verify_docker_image_build: | |
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/main' | |
needs: [ verify_unit_tests_lint, verify_integration ] | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Check-out repository | |
id: repo-checkout | |
uses: actions/checkout@v3 | |
- name: Set up JDK 17 with sbt cache | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
cache: 'sbt' | |
- name: Build docker image locally | |
id: build-docker-image-locally | |
run: sbt -Dsbt.task.timings=true docker:publishLocal | |
deploy: | |
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' | |
needs: [ verify_unit_tests_lint, verify_integration ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check-out repository | |
id: repo-checkout | |
uses: actions/checkout@v3 | |
- name: Set up JDK 17 | |
id: jdk-setup | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: 17 | |
cache: 'sbt' | |
- name: Cache SBT | |
id: cache-sbt | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.sbt | |
~/.ivy2/cache | |
~/.coursier | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }} | |
- name: Login to DockerHub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Publish docker image | |
run: sbt -Dsbt.task.timings=true backend/docker:publish |