Skip to content

ondk build

ondk build #74

Workflow file for this run

name: ondk build
on:
workflow_dispatch:
release:
types: [published]
jobs:
linux:
name: Build for Linux
runs-on: ubuntu-20.04
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Set up Python 3
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Build toolchain
run: |
sudo apt-get -y install cmake ninja-build libzstd-dev binutils-dev
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 18
rm llvm.sh
./build.sh
- name: Upload build artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name == 'workflow_dispatch' }}
with:
name: ondk-linux
path: dist/*.tar.xz
- name: Upload release assets
uses: softprops/action-gh-release@v2
if: ${{ github.event_name == 'release' }}
with:
files: dist/*.tar.xz
windows:
name: Build for Windows
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: UCRT64
update: true
install: make diffutils tar patch unzip gzip
pacboy: 7zip:p python:p cmake:p gcc:p ninja:p zstd:p
- name: Build toolchain
run: |
cp -r $GITHUB_WORKSPACE /c/ondk
cd /c/ondk
bash build-windows.sh
- name: Upload build artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name == 'workflow_dispatch' }}
with:
name: ondk-windows
path: C:\ondk\dist\*.tar.xz
- name: Upload release assets
uses: softprops/action-gh-release@v2
if: ${{ github.event_name == 'release' }}
with:
files: C:/ondk/dist/*.tar.xz
macos-x64:
name: Build for macOS (x64)
runs-on: macos-13
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Set up Python 3
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Build toolchain
run: |
brew reinstall ninja zstd binutils
./build.sh clone build
mkdir tmp
tar c out | xz --x86 --lzma2 > tmp/out.x64.tar.xz
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: macos-x64
path: tmp/*.tar.xz
macos-arm64:
name: Build for macOS (arm64)
runs-on: macos-14
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Set up Python 3
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Build toolchain
run: |
brew reinstall ninja zstd binutils
./build.sh clone build
mkdir tmp
tar c out | xz > tmp/out.arm64.tar.xz
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: macos-arm64
path: tmp/*.tar.xz
macos:
name: Build for macOS (Universal)
runs-on: macos-14
needs: [macos-x64, macos-arm64]
steps:
- name: Check out
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Download x64 artifacts
uses: actions/download-artifact@v4
with:
name: macos-x64
path: tmp
- name: Download arm64 artifacts
uses: actions/download-artifact@v4
with:
name: macos-arm64
path: tmp
- name: Build ONDK
run: ./dist-macos.sh
- name: Upload build artifact
uses: actions/upload-artifact@v4
if: ${{ github.event_name == 'workflow_dispatch' }}
with:
name: ondk-macos
path: dist/*.tar.xz
- name: Upload release assets
uses: softprops/action-gh-release@v2
if: ${{ github.event_name == 'release' }}
with:
files: dist/*.tar.xz
- name: Remove x64 artifact
uses: geekyeggo/delete-artifact@v4
with:
name: macos-x64
failOnError: false
- name: Remove arm64 artifact
uses: geekyeggo/delete-artifact@v4
with:
name: macos-arm64
failOnError: false