Skip to content

build

build #6

Workflow file for this run

name: build
on:
pull_request: {}
workflow_dispatch: {}
push:
branches:
- 'trunk'
tags-ignore:
- '**'
env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false"
jobs:
jvm-test:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- run: brew install zig
if: matrix.os == 'macos-latest'
- run: sudo snap install zig --classic --beta
if: matrix.os == 'ubuntu-latest'
- name: Build native libraries
run: |
if [[ "$(uname)" == "Darwin" ]]; then
xcodebuild -version
ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libSystem.B.tbd /opt/homebrew/Cellar/zig/0.13.0/lib/zig/libc/darwin/libSystem.tbd
fi
cd zipline
zig build
cd ..
- run: ./gradlew build --stacktrace
android-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- run: ./gradlew assembleAndroidTest
- uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 29
emulator-boot-timeout: 20000
script: ./gradlew connectedCheck
ios:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- name: Build Xcode samples
run: |
cd samples/world-clock/ios/app
pod install
xcodebuild -workspace WorldClock.xcworkspace -scheme WorldClock -destination 'platform=iOS Simulator,name=iPhone 13,OS=latest'
publish:
runs-on: ubuntu-latest
needs:
- jvm-test
- android-test
if: ${{ (github.ref == 'refs/heads/trunk' || startsWith(github.ref, 'refs/tags/')) && github.repository == 'cashapp/zipline' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- name: Build native libraries
run: |
sudo snap install zig --classic --beta
cd zipline
zig build
cd ..
- run: ./gradlew assemble dokkaHtmlMultiModule
- uses: actions/upload-artifact@v4
with:
name: zipline-jvm.jar
path: zipline/build/libs/zipline-jvm-*.jar
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: zipline-android.aar
path: zipline/build/outputs/aar/*-release.aar
if-no-files-found: error
- run: ./gradlew publish
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ARTIFACT_SIGNING_PRIVATE_KEY }}
- name: Deploy snapshot docs to website
if: ${{ github.ref == 'refs/heads/trunk' && github.repository == 'cashapp/zipline' }}
uses: JamesIves/github-pages-deploy-action@releases/v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: site
FOLDER: build/dokka/htmlMultiModule/
TARGET_FOLDER: docs/latest/
CLEAN: true