Skip to content

build

build #707

Workflow file for this run

name: build
on:
pull_request: {}
workflow_dispatch: {}
push:
branches:
- 'main'
tags-ignore:
- '**'
env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false"
jobs:
spotless:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version-file: .github/.java-version
- uses: gradle/actions/setup-gradle@v4
continue-on-error: true
- run: ./gradlew spotlessCheck
database:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version-file: .github/.java-version
- uses: gradle/actions/setup-gradle@v4
continue-on-error: true
- run: ./gradlew verifySqlDelightMigration
build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
task: linkReleaseExecutableLinuxX64 linuxX64Test
target: 'linuxX64'
- os: macOS-13
task: linkReleaseExecutableMacosX64 macosX64Test
target: 'macosX64'
- os: macOS-14
task: linkReleaseExecutableMacosArm64 macosArm64Test
target: 'macosArm64'
# TODO: build on 'windows-latest'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version-file: .github/.java-version
- uses: gradle/actions/setup-gradle@v4
continue-on-error: true
- run: ./gradlew buildDependencies ${{ matrix.task }}
- uses: dorny/test-reporter@v1
# Doesn't work with forks.
if: (success() || failure()) && (github.event.pull_request == null || github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name)
with:
name: ${{ matrix.os }} Tests
path: '**/build/test-results/**/TEST-*.xml'
reporter: java-junit
- name: Upload distribution
uses: actions/upload-artifact@v4
with:
name: stacker-${{ matrix.target }}
path: build/bin/${{ matrix.target }}/releaseExecutable/stacker.kexe
if-no-files-found: error
final-status:
if: always()
runs-on: ubuntu-latest
needs:
- build
- database
- spotless
steps:
- name: Check
run: |
results=$(tr -d '\n' <<< '${{ toJSON(needs.*.result) }}')
if ! grep -q -v -E '(failure|cancelled)' <<< "$results"; then
echo "One or more required jobs failed"
exit 1
fi