Skip to content

ondk build

ondk build #136

Workflow file for this run

name: ondk build
on:
workflow_dispatch:
jobs:
linux:
name: Build for Linux
runs-on: ubuntu-22.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: Clean up storage
run: |
sudo rm -rf \
"$JAVA_HOME_8_X64" "$JAVA_HOME_11_X64" "$JAVA_HOME_17_X64" "$JAVA_HOME_21_X64" \
"$CHROMEWEBDRIVER" "$EDGEWEBDRIVER" "$GECKOWEBDRIVER" \
/usr/local/lib/android
- name: Build toolchain
run: |
sudo apt-get update
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 20
sudo apt-get -y install libc++-20-dev libc++abi-20-dev
rm llvm.sh
./build.sh
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: ondk-linux
path: dist/*.tar.xz
windows:
name: Build for Windows
runs-on: windows-2025
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: MINGW64
update: true
install: make diffutils tar patch unzip gzip python
pacboy: 7zip:p cmake:p gcc:p ninja:p zstd:p clang:p lld:p libc++:p
- name: Build toolchain
run: bash build-windows.sh
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: ondk-windows
path: dist\*.tar.xz
macos-x64-llvm:
name: Build LLVM for macOS (x64)
runs-on: macos-15-intel
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 LLVM
run: |
brew reinstall ninja zstd binutils gpatch
./build.sh clone-llvm build-llvm
rm -rf out/llvm/build
mkdir tmp
tar c out/llvm | xz --x86 --lzma2 > tmp/llvm.x64.tar.xz
- name: Upload LLVM artifact
uses: actions/upload-artifact@v4
with:
name: macos-x64-llvm
path: tmp/*.tar.xz
macos-x64:
name: Build for macOS (x64)
runs-on: macos-15-intel
needs: [macos-x64-llvm]
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: Download LLVM artifacts
uses: actions/download-artifact@v4
with:
name: macos-x64-llvm
path: tmp
- name: Build toolchain
run: |
xz -d < tmp/llvm.x64.tar.xz | tar x
rm tmp/llvm.x64.tar.xz
brew reinstall ninja zstd binutils gpatch
./build.sh clone build-rust collect
tar c out/collect | xz --x86 --lzma2 > tmp/out.x64.tar.xz
- name: Remove LLVM artifact
uses: geekyeggo/delete-artifact@v4
with:
name: macos-x64-llvm
failOnError: false
- 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-15
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 gpatch
./build.sh clone build collect
mkdir tmp
tar c out/collect | 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-15
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
with:
name: ondk-macos
path: 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