chore: add splitted targets

This commit is contained in:
Nurul Huda (Apon) 2026-07-16 02:49:20 +06:00
parent d844d2a5fc
commit 377f0afb2a
No known key found for this signature in database
GPG key ID: 5D3F1DE2855A2F79
2 changed files with 101 additions and 30 deletions

View file

@ -17,43 +17,126 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
# macOS
- target: x86_64-macos - target: x86_64-macos
os: macos-latest os: macos-latest
rust-target: x86_64-apple-darwin rust-target: x86_64-apple-darwin
cross-packages: ""
- target: aarch64-macos - target: aarch64-macos
os: macos-latest os: macos-latest
rust-target: aarch64-apple-darwin rust-target: aarch64-apple-darwin
cross-packages: ""
# Linux
- target: x86_64-linux-gnu - target: x86_64-linux-gnu
os: ubuntu-latest os: ubuntu-latest
rust-target: x86_64-unknown-linux-gnu rust-target: x86_64-unknown-linux-gnu
cross-packages: ""
- target: aarch64-linux-gnu - target: aarch64-linux-gnu
os: ubuntu-latest os: ubuntu-latest
rust-target: aarch64-unknown-linux-gnu rust-target: aarch64-unknown-linux-gnu
cross-packages: gcc-aarch64-linux-gnu
- target: x86-linux-gnu
os: ubuntu-latest
rust-target: i686-unknown-linux-gnu
cross-packages: gcc-i686-linux-gnu
- target: arm-linux-gnueabihf
os: ubuntu-latest
rust-target: armv7-unknown-linux-gnueabihf
cross-packages: gcc-arm-linux-gnueabihf
- target: loongarch64-linux-gnu
os: ubuntu-latest
rust-target: loongarch64-unknown-linux-gnu
cross-packages: gcc-loongarch64-linux-gnu
- target: mips64el-linux-gnuabi64
os: ubuntu-latest
rust-target: mips64el-unknown-linux-gnuabi64
cross-packages: gcc-mips64el-linux-gnuabi64
- target: powerpc64-linux-gnu
os: ubuntu-latest
rust-target: powerpc64le-unknown-linux-gnu
cross-packages: gcc-powerpc64-linux-gnu
- target: riscv64-linux-gnu
os: ubuntu-latest
rust-target: riscv64gc-unknown-linux-gnu
cross-packages: gcc-riscv64-linux-gnu
- target: s390x-linux-gnu
os: ubuntu-latest
rust-target: s390x-unknown-linux-gnu
cross-packages: gcc-s390x-linux-gnu
# Windows
- target: x86_64-windows-gnu - target: x86_64-windows-gnu
os: ubuntu-latest os: ubuntu-latest
rust-target: x86_64-pc-windows-gnu rust-target: x86_64-pc-windows-gnu
cross-packages: mingw-w64
- target: aarch64-windows-gnu - target: aarch64-windows-gnu
os: ubuntu-latest os: ubuntu-latest
rust-target: aarch64-pc-windows-gnullvm rust-target: aarch64-pc-windows-gnullvm
cross-packages: mingw-w64
- target: x86-windows-gnu
os: ubuntu-latest
rust-target: i686-pc-windows-gnu
cross-packages: mingw-w64
# BSD
- target: x86_64-freebsd
os: ubuntu-latest
rust-target: x86_64-unknown-freebsd
cross-packages: ""
- target: aarch64-freebsd
os: ubuntu-latest
rust-target: aarch64-unknown-freebsd
cross-packages: ""
- target: x86_64-netbsd
os: ubuntu-latest
rust-target: x86_64-unknown-netbsd
cross-packages: ""
- target: aarch64-netbsd
os: ubuntu-latest
rust-target: aarch64-unknown-netbsd
cross-packages: ""
- target: x86_64-openbsd
os: ubuntu-latest
rust-target: x86_64-unknown-openbsd
cross-packages: ""
- target: aarch64-openbsd
os: ubuntu-latest
rust-target: aarch64-unknown-openbsd
cross-packages: ""
# illumos
- target: x86_64-solaris
os: ubuntu-latest
rust-target: x86_64-pc-solaris
cross-packages: ""
# Additional targets
- target: wasm32-freestanding - target: wasm32-freestanding
os: ubuntu-latest os: ubuntu-latest
rust-target: wasm32-unknown-unknown rust-target: wasm32-unknown-unknown
cross-packages: ""
- target: wasm32-wasi - target: wasm32-wasi
os: ubuntu-latest os: ubuntu-latest
rust-target: wasm32-wasip1 rust-target: wasm32-wasip1
cross-packages: ""
- target: x86_64-linux-musl - target: x86_64-linux-musl
os: ubuntu-latest os: ubuntu-latest
rust-target: x86_64-unknown-linux-musl rust-target: x86_64-unknown-linux-musl
cross-packages: ""
- target: aarch64-linux-musl - target: aarch64-linux-musl
os: ubuntu-latest os: ubuntu-latest
rust-target: aarch64-unknown-linux-musl rust-target: aarch64-unknown-linux-musl
cross-packages: ""
- target: aarch64-linux-android - target: aarch64-linux-android
os: ubuntu-latest os: ubuntu-latest
rust-target: aarch64-linux-android rust-target: aarch64-linux-android
cross-packages: ""
- target: aarch64-ios - target: aarch64-ios
os: macos-latest os: macos-latest
rust-target: aarch64-apple-ios rust-target: aarch64-apple-ios
cross-packages: ""
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -67,28 +150,28 @@ jobs:
with: with:
targets: ${{ matrix.rust-target }} targets: ${{ matrix.rust-target }}
- name: Install cross-compilers (Linux-aarch64) - name: Install cross-compilers
if: contains(matrix.target, 'aarch64-linux') if: matrix.cross-packages != ''
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu sudo apt-get install -y ${{ matrix.cross-packages }}
- name: Install cross-compilers (Windows-mingw)
if: contains(matrix.target, 'windows-gnu')
run: |
sudo apt-get update
sudo apt-get install -y mingw-w64
- name: Build Package - name: Build Package
run: | run: |
cd pkg/temporal cd lib
zig build -Dbuild-rust -Dtarget=${{ matrix.target }} -Doptimize=ReleaseSafe zig build -Dbuild-rust -Dtarget=${{ matrix.target }} -Doptimize=ReleaseSafe
- name: Package artifact
run: |
cd lib
mkdir -p dist
tar -czf "dist/${{ matrix.target }}.tar.gz" -C zig-out/lib .
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: lib-${{ matrix.target }} name: ${{ matrix.target }}
path: pkg/temporal/zig-out/lib/ path: lib/dist/${{ matrix.target }}.tar.gz
retention-days: 1 retention-days: 1
release: release:
@ -97,30 +180,18 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/') if: startsWith(github.ref, 'refs/tags/')
steps: steps:
- name: Checkout code - uses: actions/checkout@v4
uses: actions/checkout@v4
- name: Download all artifacts - name: Download all artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
path: all-libs path: dist
pattern: lib-*
merge-multiple: true merge-multiple: true
- name: Prepare Release Artifact
run: |
mkdir -p release/lib
cp -r all-libs/* release/lib/
cd release
tar -czf ../libtemporal.tar.gz lib/
zip -r ../libtemporal.zip lib/
- name: Release - name: Release
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2
with: with:
files: | files: dist/*.tar.gz
libtemporal.tar.gz
libtemporal.zip
generate_release_notes: true generate_release_notes: true
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -4,8 +4,8 @@
.fingerprint = 0xded01f16f20c2a64, .fingerprint = 0xded01f16f20c2a64,
.dependencies = .{ .dependencies = .{
.temporal_rs = .{ .temporal_rs = .{
.url = "git+https://github.com/boa-dev/temporal?ref=v0.2.3#c003cc92325e19b26f8ee2f85e4a47d98cbcc781", .url = "git+https://github.com/boa-dev/temporal?ref=v0.2.4#a5cebbcce231552bf6ed985d7ea13b0c7b195f02",
.hash = "N-V-__8AAPLKOQDfJ5TYhiiy_6a_dZqUmo9K4e8Xhjfup3fd", .hash = "N-V-__8AALjnOQBiCk4NffYgEewZ5v9qlLlDyXO22FIyzNdf",
}, },
.prebuilt_libtemporal = .{ .prebuilt_libtemporal = .{
.url = "https://github.com/nurulhudaapon/temporalz/releases/download/v0.2.3/libtemporal.tar.gz", .url = "https://github.com/nurulhudaapon/temporalz/releases/download/v0.2.3/libtemporal.tar.gz",