Skip to content

Create ci.yml workflow #13

Create ci.yml workflow

Create ci.yml workflow #13

Workflow file for this run

name: Inking CI (all platforms)
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
win-natives:
name: Windows Natives
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8
dotnet-quality: ga
- uses: egor-tensin/setup-cygwin@v4
with:
packages: make perl-Digest-SHA
- name: Build NativeAOT with GNU Make (Windows x64, Windows arm64)
shell: bash
run: make win-x64 win-arm64
working-directory: inking-otd
- uses: actions/upload-artifact@v4
with:
name: windows-natives
path: |
inking-otd/src/main/resources/natives/**/*
linux-natives:
name: Linux Natives
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8
dotnet-quality: ga
- name: Setup linux-x64 target
run: |
sudo apt update
sudo apt install -y gcc
- name: Setup linux-arm64 target
run: |
# Taken directly from https://github.com/dotnet/docs/blob/main/docs/core/deploying/native-aot/cross-compile.md
sudo dpkg --add-architecture arm64
sudo bash -c 'cat > /etc/apt/sources.list.d/arm64.list <<EOF
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted
deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
EOF'
sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
sudo sed -i -e 's/deb mirror/deb [arch=amd64] mirror/g' /etc/apt/sources.list
sudo apt update
sudo apt install -y clang llvm binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu zlib1g-dev:arm64
- name: Build NativeAOT with GNU Make (Linux x64, Linux arm64)
run: make linux-x64 linux-arm64
working-directory: inking-otd
- uses: actions/upload-artifact@v4
with:
name: linux-natives
path: |
inking-otd/src/main/resources/natives/**/*
osx-natives:
name: OSX Natives
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8
dotnet-quality: ga
- name: Build NativeAOT with GNU Make (OSX x64, OSX arm64)
run: make osx-x64 osx-arm64
working-directory: inking-otd
- uses: actions/upload-artifact@v4
with:
name: osx-natives
path: |
inking-otd/src/main/resources/natives/**/*
java:
name: Inking
needs: [win-natives, linux-natives, osx-natives]
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download Windows Natives
uses: actions/download-artifact@v4
with:
name: windows-natives
path: |
inking-otd/src/main/resources/natives/**/*
- name: Download Linux Natives
uses: actions/download-artifact@v4
with:
name: linux-natives
path: |
inking-otd/src/main/resources/natives/**/*
- name: Download OSX Natives
uses: actions/download-artifact@v4
with:
name: osx-natives
path: |
inking-otd/src/main/resources/natives/**/*
- uses: actions/setup-java@v4
with:
java-version: 21
cache: maven
- name: Build with Maven
run: mvn -B package --file pom.xml
- uses: actions/upload-artifact@v4
with:
name: inking-artifacts
path: '*/target/*.jar'