Skip to content

Routes

Routes #13519

Workflow file for this run

# This file was automatically generated by sbt-github-actions using the
# githubWorkflowGenerate task. You should add and commit this file to
# your git repository. It goes without saying that you shouldn't edit
# this file by hand! Instead, if you wish to make changes, you should
# change your sbt build configuration to revise the workflow description
# to meet your needs, then regenerate this file.
name: Continuous Integration
on:
pull_request:
branches: ['**']
types: [opened, synchronize, reopened, edited, labeled]
push:
branches: ['**']
tags: [v*]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
build:
name: Build and Test
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.12.18, 2.13.10, 3.3.0]
java: [graal_21.1.0@11, temurin@8]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout current branch (full)
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup GraalVM (graal_21.1.0@11)
if: matrix.java == 'graal_21.1.0@11'
uses: graalvm/setup-graalvm@v1
with:
version: 21.1.0
java-version: 11
components: native-image
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: sbt
- name: Setup Java (temurin@8)
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 8
cache: sbt
- name: Check formatting
if: matrix.scala == '2.13.10'
run: sbt ++2.13.10 fmtCheck
- name: Check that workflows are up to date
run: sbt '++ ${{ matrix.scala }}' githubWorkflowCheck
- name: Build project
run: sbt '++ ${{ matrix.scala }}' test
- name: Check doc generation
if: ${{ github.event_name == 'pull_request' }}
run: sbt ++2.13.10 doc
- name: zio-http-shaded Tests
if: matrix.scala == '2.13.10'
env:
PUBLISH_SHADED: true
run: sbt '++ ${{ matrix.scala }}' zioHttpShadedTests/test
- name: Compress target directories
run: tar cf targets.tar zio-http-cli/target target zio-http/target zio-http-docs/target zio-http-benchmarks/target zio-http-example/target zio-http-testkit/target project/target
- name: Upload target directories
uses: actions/upload-artifact@v3
with:
name: target-${{ matrix.os }}-${{ matrix.scala }}-${{ matrix.java }}
path: targets.tar
publish:
name: Publish Artifacts
needs: [build]
if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v'))
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.13.10]
java: [graal_21.1.0@11]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout current branch (full)
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup GraalVM (graal_21.1.0@11)
if: matrix.java == 'graal_21.1.0@11'
uses: graalvm/setup-graalvm@v1
with:
version: 21.1.0
java-version: 11
components: native-image
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: sbt
- name: Setup Java (temurin@8)
if: matrix.java == 'temurin@8'
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 8
cache: sbt
- name: Download target directories (2.12.18)
uses: actions/download-artifact@v3
with:
name: target-${{ matrix.os }}-2.12.18-${{ matrix.java }}
- name: Inflate target directories (2.12.18)
run: |
tar xf targets.tar
rm targets.tar
- name: Download target directories (2.13.10)
uses: actions/download-artifact@v3
with:
name: target-${{ matrix.os }}-2.13.10-${{ matrix.java }}
- name: Inflate target directories (2.13.10)
run: |
tar xf targets.tar
rm targets.tar
- name: Download target directories (3.3.0)
uses: actions/download-artifact@v3
with:
name: target-${{ matrix.os }}-3.3.0-${{ matrix.java }}
- name: Inflate target directories (3.3.0)
run: |
tar xf targets.tar
rm targets.tar
- name: Release
env:
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
CI_SONATYPE_RELEASE: ${{ secrets.CI_SONATYPE_RELEASE }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
run: sbt ci-release
- name: Release Shaded
env:
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
PUBLISH_SHADED: true
CI_SONATYPE_RELEASE: ${{ secrets.CI_SONATYPE_RELEASE }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
run: sbt ci-release
update_release_draft:
name: Release Drafter
if: ${{ github.base_ref == 'main' }}
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.13.10]
java: [temurin@8]
runs-on: ${{ matrix.os }}
steps:
- uses: release-drafter/release-drafter@v5
unsafeRunScoverage:
name: Unsafe Scoverage
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.13.10]
java: [temurin@8]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout current branch (full)
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Add Scoverage
id: add_plugin
run: sed -i -e '$aaddSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.9.3")' project/plugins.sbt
- name: Update Build Definition
id: update_build_definition
run: |
sed -i -e 's+(project in file("./zio-http"))+(project in file("./zio-http")).settings(coverageEnabled:=true,coverageMinimumStmtTotal:=50.0,coverageMinimumBranchTotal:=60.0)+g' build.sbt
- name: Run Coverage
id: run_coverage
run: sbt 'coverage; project zioHttp; test; coverageReport'
- name: Push Codecov
id: push_codecov
run: 'bash <(curl -s https://codecov.io/bash)'
Jmh_publish:
name: Jmh Publish
if: ${{ github.event.label.name == 'run jmh' && github.event_name == 'pull_request' }}
strategy:
matrix:
os: [ubuntu-latest]
scala: [2.13.10]
java: [temurin@8]
runs-on: ${{ matrix.os }}
steps:
- name: Format Output
id: fomat_output
run: |
cat parsed_Current.txt parsed_Main.txt | sort -u > c.txt
while IFS= read -r line; do
if grep -q "$line" Current.txt
then
grep "$line" Current.txt | sed 's/^.*: //' >> finalCurrent.txt;
else
echo "" >> finalCurrent.txt;
fi
if grep -q "$line" Main.txt
then
grep "$line" Main.txt | sed 's/^.*: //' >> finalMain.txt;
else
echo "" >> finalMain.txt;
fi
done < c.txt
paste -d '|' c.txt finalCurrent.txt finalMain.txt > FinalOutput.txt
sed -i -e 's/^/|/' FinalOutput.txt
sed -i -e 's/$/|/' FinalOutput.txt
body=$(cat FinalOutput.txt)
body="${body//'%'/'%25'}"
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo $body
echo ::set-output name=body::$(echo $body)
- uses: peter-evans/commit-comment@v1
with:
sha: ${{github.sha}}
body: |
**🚀 Jmh Benchmark:**
|Name |Current| Main|
|-----|----| ----|
${{steps.fomat_output.outputs.body}}