Skip to content

Add holdsIn contracts #3947

Add holdsIn contracts

Add holdsIn contracts #3947

Workflow file for this run

name: "pull_request"
on: pull_request
env:
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.kotlin.dsl.internal.io.timeout=120000 -Dorg.gradle.jvmargs="-Xmx5g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8"
concurrency:
group: pull_request-${{ github.ref }}
cancel-in-progress: true
jobs:
knit:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: Knit and API checks
run: ./gradlew knitCheck
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-check'
path: '**/build/reports/**'
spotless:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: Apply Spotless rules
run: ./gradlew spotlessApply
- name: Commit newly formatted files
uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: Auto-apply Spotless rules
file_pattern: arrow-libs/**/*.kt
ios:
runs-on: macos-15
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Cache Kotlin Native dependencies
uses: actions/cache@v4
with:
path: ~/.konan
key: ${{ runner.os }}-konan-${{ hashFiles('**/libs.versions.toml', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-konan-
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: iOS tests
run: ./gradlew iosSimulatorArm64Test
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-ios_watchos'
path: '**/build/reports/**'
macos:
runs-on: macos-15
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Cache Kotlin Native dependencies
uses: actions/cache@v4
with:
path: ~/.konan
key: ${{ runner.os }}-konan-${{ hashFiles('**/libs.versions.toml', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-konan-
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: macOS tests
run: ./gradlew macosArm64Test
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-macos_tvos'
path: '**/build/reports/**'
windows:
runs-on: windows-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Cache Kotlin Native dependencies
uses: actions/cache@v4
with:
path: ~/.konan
key: ${{ runner.os }}-konan-${{ hashFiles('**/libs.versions.toml', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-konan-
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: Windows (MinGW-w64) tests
run: ./gradlew mingwX64Test
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-windows'
path: '**/build/reports/**'
jvm:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: JVM tests
run: ./gradlew jvmTest :arrow-core-jackson:test :arrow-core-retrofit:test :arrow-core-result4k:test :arrow-optics-ksp-plugin:test
- name: Code coverage
if: "! github.event.pull_request.head.repo.fork "
run: ./gradlew koverXmlReport
- name: Add code coverage report
if: "! github.event.pull_request.head.repo.fork "
id: kover
uses: mi-kas/kover-report@v1
with:
path: build/reports/kover/report.xml
token: ${{ secrets.GITHUB_TOKEN }}
title: Kover Report
update-comment: true
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-jvmTest'
path: '**/build/reports/**'
linux:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: Linux (x64) tests
run: ./gradlew linuxX64Test
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-linux'
path: '**/build/reports/**'
- name: Android (release) tests
run: ./gradlew testAndroid
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-android'
path: '**/build/reports/**'
- name: Upgrade yarn.lock
run: ./gradlew kotlinUpgradeYarnLock
continue-on-error: true
- name: JS tests
run: ./gradlew jsTest
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-js'
path: '**/build/reports/**'
- name: Compile WebAssembly
run: ./gradlew wasmJsJar :suspendapp-test-runner:wasmJsTest -Penable_wasm=true
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-wasm'
path: '**/build/reports/**'
- name: Update API files
run: ./gradlew updateLegacyAbi
- name: Commit updated API files
uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: Auto-update API files
file_pattern: arrow-libs/**/api/*.api
gradle:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: Optics Gradle plugin
run: ./test-optics-gradle-plugin.sh
- name: Upload reports
if: failure()
uses: actions/upload-artifact@v5
with:
name: 'reports-gradle'
path: '**/build/reports/**'