make schema nullable instead of adding null-types into the apispec schema #8521
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: CI | |
on: | |
pull_request: | |
branches: ['**'] | |
push: | |
branches: ['**'] | |
tags: [v*] | |
env: | |
# .sbtopts specifies 8g, which is needed to import into IntelliJ, but on GH that exceeds the maximum available memory | |
SBT_JAVA_OPTS: -J-Xms4g -J-Xmx4g | |
jobs: | |
ci: | |
# run on external PRs, but not on internal PRs since those will be run by push to branch | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
scala-version: [ "2.12", "2.13", "3" ] | |
target-platform: [ "JVM", "JS", "Native" ] | |
java: [ "11", "21" ] | |
exclude: | |
- java: "21" | |
- scala-version: "2.12" | |
target-platform: "Native" | |
- scala-version: "2.13" | |
target-platform: "Native" | |
include: # Restricted to build only specific Loom-based modules | |
- scala-version: "2.13" | |
target-platform: "JVM" | |
java: "21" | |
- scala-version: "3" | |
target-platform: "JVM" | |
java: "21" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
cache: 'sbt' | |
java-version: ${{ matrix.java }} | |
- name: Install sam cli | |
if: matrix.java == '11' | |
run: | | |
wget -q https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip | |
unzip -q aws-sam-cli-linux-x86_64.zip -d sam-installation | |
sudo ./sam-installation/install --update | |
sam --version | |
- name: Install NPM | |
if: matrix.java == '11' | |
run: | | |
sudo apt install npm | |
npm --version | |
- name: Install AWS CDK | |
if: matrix.java == '11' | |
run: | | |
npm install -g aws-cdk | |
cdk --version | |
- name: Install libidn2-dev libcurl3-dev | |
if: matrix.target-platform == 'Native' | |
run: | | |
sudo apt-get update | |
sudo apt-get install libidn2-dev libcurl3-dev | |
echo "STTP_NATIVE=1" >> $GITHUB_ENV | |
- name: Enable Loom-specific modules | |
if: matrix.java == '21' | |
run: echo "ONLY_LOOM=1" >> $GITHUB_ENV | |
- name: Compile | |
run: sbt $SBT_JAVA_OPTS -v "compileScoped ${{ matrix.scala-version }} ${{ matrix.target-platform }}" | |
- name: Compile documentation | |
if: matrix.target-platform == 'JVM' && matrix.java == '11' | |
run: sbt $SBT_JAVA_OPTS -v compileDocumentation | |
- name: Test | |
if: matrix.target-platform != 'JS' | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 45 | |
max_attempts: 3 | |
command: sbt $SBT_JAVA_OPTS -v "testScoped ${{ matrix.scala-version }} ${{ matrix.target-platform }}" | |
# The finatra tests take a really long time (1/3 of the build duration); hence, they are disabled and need to be run separately | |
#- name: Test finatra | |
# if: matrix.target-platform != 'JS' | |
# run: sbt $SBT_JAVA_OPTS -v testFinatra | |
# Temporarily call JS tests for each subproject explicitly as a workaround until | |
# https://github.com/scala-js/scala-js/issues/4317 has a solution | |
- name: Test | |
if: matrix.target-platform == 'JS' && matrix.scala-version == '2.12' | |
run: sbt $SBT_JAVA_OPTS catsJS2_12/test circeJsonJS2_12/test clientCoreJS2_12/test clientTestsJS2_12/test coreJS2_12/test enumeratumJS2_12/test jsoniterScalaJS2_12/test newtypeJS2_12/test openapiDocsJS2_12/test playJsonJS2_12/test redocJS2_12/test serverCoreJS2_12/test sttpClientJS2_12/test testingJS2_12/test testsJS2_12/test uPickleJsonJS2_12/test zio1JsonJS2_12/test zioJsonJS2_12/test | |
- name: Test | |
if: matrix.target-platform == 'JS' && matrix.scala-version == '2.13' | |
run: sbt $SBT_JAVA_OPTS catsJS/test circeJsonJS/test clientCoreJS/test clientTestsJS/test coreJS/test enumeratumJS/test jsoniterScalaJS/test newtypeJS/test openapiDocsJS/test playJsonJS/test redocJS/test serverCoreJS/test sttpClientJS/test testingJS/test testsJS/test uPickleJsonJS/test zio1JsonJS/test zioJsonJS/test | |
- name: Test | |
if: matrix.target-platform == 'JS' && matrix.scala-version == '3' | |
run: sbt $SBT_JAVA_OPTS catsJS3/test circeJsonJS3/test clientCoreJS3/test clientTestsJS3/test coreJS3/test jsoniterScalaJS3/test openapiDocsJS3/test redocJS3/test serverCoreJS3/test sttpClientJS3/test testingJS3/test testsJS3/test uPickleJsonJS3/test zioJsonJS3/test | |
- name: Prepare release notes | |
uses: release-drafter/release-drafter@v5 | |
with: | |
config-name: release-drafter.yml | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
mima: | |
# run on external PRs, but not on internal PRs since those will be run by push to branch | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # checkout tags so that dynver works properly (we need the version for MiMa) | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: 11 | |
cache: 'sbt' | |
- name: Check MiMa | |
run: sbt $SBT_JAVA_OPTS -v mimaReportBinaryIssues | |
publish: | |
name: Publish release | |
needs: [ci] | |
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v')) | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
java: [ "11", "21" ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java }} | |
cache: 'sbt' | |
- name: Install libidn2-dev libcurl3-dev | |
if: matrix.java == '11' | |
run: | | |
sudo apt-get update | |
sudo apt-get install libidn2-dev libcurl3-dev | |
- name: Enable Native-specific modules | |
if: matrix.java == '11' | |
run: echo "STTP_NATIVE=1" >> $GITHUB_ENV | |
- name: Enable Loom-specific modules | |
if: matrix.java == '21' | |
run: echo "ONLY_LOOM=1" >> $GITHUB_ENV | |
- name: Compile | |
run: sbt $SBT_JAVA_OPTS compile | |
- name: Publish artifacts | |
run: sbt $SBT_JAVA_OPTS ci-release | |
env: | |
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
- name: Extract version from commit message | |
if: matrix.java == '11' | |
run: | | |
version=${GITHUB_REF/refs\/tags\/v/} | |
echo "VERSION=$version" >> $GITHUB_ENV | |
env: | |
COMMIT_MSG: ${{ github.event.head_commit.message }} | |
- name: Publish release notes | |
if: matrix.java == '11' | |
uses: release-drafter/release-drafter@v5 | |
with: | |
config-name: release-drafter.yml | |
publish: true | |
name: "v${{ env.VERSION }}" | |
tag: "v${{ env.VERSION }}" | |
version: "v${{ env.VERSION }}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |