feat: sort schemas topologically #153
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: Build and Test | |
on: | |
workflow_dispatch: | |
workflow_call: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
jobs: | |
build-jar: | |
name: Build jar | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Java 11 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 11 | |
- name: Setup Clojure | |
uses: DeLaGuardo/[email protected] | |
with: | |
cli: latest | |
- name: Cache clojure dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: cljdeps-${{ hashFiles('**/deps.edn') }} | |
restore-keys: cljdeps- | |
- name: Run tests | |
run: clojure -M:test -m kaocha.runner --skip-meta :snapshot | |
- name: Build uberjar | |
run: clojure -T:build uberjar :jar-name aidbox-sdk | |
- name: Upload jar artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-jar | |
path: target/aidbox-sdk.jar | |
# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- # | |
build-native: | |
name: Build for ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
needs: build-jar | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download jar artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-jar | |
path: ./ | |
- name: Setup GraalVM | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: "21" | |
distribution: "graalvm" | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
native-image-job-reports: "true" | |
- name: Compile to native binary | |
run: | | |
make compile-native-image project_dir=${{ github.workspace }} jar_path=aidbox-sdk.jar image_name=aidbox-sdk-${{ matrix.os }} | |
chmod +x aidbox-sdk-${{ matrix.os }} | |
- name: Upload amd64 binary artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-${{ matrix.os }} | |
path: ./aidbox-sdk-* |