Skip to content

Update http4k to v5 (major) #4513

Update http4k to v5 (major)

Update http4k to v5 (major) #4513

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:
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [amd64]
cmake-arch: [x86_64]
include:
- os: macOS-latest
arch: x86_64
cmake-arch: x86_64
- os: macOS-latest
arch: aarch64
cmake-arch: arm64
# TODO: build on 'windows-latest'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 20
- name: Build native library (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
cp -a . ../zipline-dockerbuild
docker run \
--volume `pwd`/../zipline-dockerbuild:/zipline \
amd64/centos:7 \
/zipline/.github/workflows/build-linux-amd64.sh
mkdir -p zipline/src/jvmMain/resources/jni/amd64
cp -v ../zipline-dockerbuild/build/jni/amd64/libquickjs.* zipline/src/jvmMain/resources/jni/amd64/
- name: Build native library (macOS)
if: matrix.os == 'macOS-latest'
run: ./.github/workflows/build-mac.sh -a ${{ matrix.arch }} -c ${{ matrix.cmake-arch }}
- name: Install libtinfo5
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install -y libtinfo5
# Build unless this is a cross-compile (we can't test cross-compiled code)
- name: Build Zipline
run: ./gradlew build --stacktrace
if: matrix.arch == 'amd64' || matrix.arch == 'x86_64'
# Build unless this is a cross-compile
- name: Build samples
run: ./gradlew -p samples check --stacktrace
if: matrix.arch == 'amd64' || matrix.arch == 'x86_64'
- uses: actions/upload-artifact@v3
with:
name: jvm-native-libraries
path: zipline/src/jvmMain/resources/*
if-no-files-found: error
android:
# We build on a Mac to get hardware acceleration for the Android emulator.
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 20
- 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@v3
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 20
- 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: macos-latest
needs:
- build
- android
- ios
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 20
- uses: actions/download-artifact@v3
- run: |
mkdir -p zipline/src/jvmMain/resources/
cp -av jvm-native-libraries/* zipline/src/jvmMain/resources/
- run: ./gradlew assemble :dokkaHtmlMultiModule
- uses: actions/upload-artifact@v3
with:
name: zipline-jvm.jar
path: zipline/build/libs/zipline-jvm-*.jar
if-no-files-found: error
- uses: actions/upload-artifact@v3
with:
name: zipline-android.aar
path: zipline/build/outputs/aar/*-release.aar
if-no-files-found: error
- uses: actions/upload-artifact@v3
with:
name: zipline-cli.zip
path: zipline-cli/build/distributions/zipline-cli-*.zip
if-no-files-found: error
- run: ./gradlew publish
if: ${{ github.ref == 'refs/heads/trunk' && github.repository == 'cashapp/zipline' }}
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 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