Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@ rustflags = ["--cfg=web_sys_unstable_apis"]

[alias]
gadget-musl-aarch64 = ["build", "-p", "smoo-gadget-cli", "--release", "--target", "aarch64-unknown-linux-musl"]
gadget-musl-armv7 = ["build", "-p", "smoo-gadget-cli", "--release", "--target", "armv7-unknown-linux-musleabihf"]
gadget-musl-x86_64 = ["build", "-p", "smoo-gadget-cli", "--release", "--target", "x86_64-unknown-linux-musl"]
xtask = ["run", "--quiet", "--package", "xtask", "--"]

[target.aarch64-unknown-linux-musl]
linker = "rust-lld"
rustflags = ["-C", "target-feature=+crt-static"]

[target.armv7-unknown-linux-musleabihf]
linker = "rust-lld"
rustflags = ["-C", "target-feature=+crt-static", "--cfg=io_uring_skip_arch_check"]

[target.x86_64-unknown-linux-musl]
linker = "rust-lld"
rustflags = ["-C", "target-feature=+crt-static"]
41 changes: 37 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,24 @@ jobs:
- name: x86_64
runner: ubuntu-24.04
target: x86_64-unknown-linux-musl
build_args: "--bins"
extra_packages: ""
rustflags: ""
upload_host: true
- name: aarch64
runner: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
build_args: "--bins"
extra_packages: ""
rustflags: ""
upload_host: true
- name: armv7
runner: ubuntu-24.04
target: armv7-unknown-linux-musleabihf
build_args: "-p smoo-gadget-cli"
extra_packages: ""
rustflags: "--cfg=io_uring_skip_arch_check"
upload_host: false

steps:
- uses: actions/checkout@v4
Expand All @@ -68,7 +83,7 @@ jobs:
- name: Install musl toolchain
run: |
sudo apt-get update
sudo apt-get install -y musl-tools linux-libc-dev
sudo apt-get install -y musl-tools linux-libc-dev ${{ matrix.extra_packages }}

- name: Set up musl kernel headers
run: |
Expand All @@ -80,12 +95,18 @@ jobs:
sudo ln -sf /usr/include/$(uname -m)-linux-gnu/asm /usr/include/$(uname -m)-linux-musl/asm
elif [ -d /usr/include/asm ]; then
sudo ln -sf /usr/include/asm /usr/include/$(uname -m)-linux-musl/asm
else
sudo ln -sf /usr/include/asm-generic /usr/include/$(uname -m)-linux-musl/asm
sudo ln -sf /usr/include/asm-generic /usr/include/asm
fi

- name: Build (static musl)
env:
RUSTFLAGS: "-D warnings ${{ matrix.rustflags }}"
run: |
cargo build \
--bins \
${{ matrix.build_args }} \
--locked \
--release \
--target ${{ matrix.target }}

Expand All @@ -96,22 +117,34 @@ jobs:
path: target/${{ matrix.target }}/release/smoo-gadget

- name: Upload smoo-host artifact
if: matrix.upload_host
uses: actions/upload-artifact@v4
with:
name: smoo-host-${{ matrix.name }}
path: target/${{ matrix.target }}/release/smoo-host

- name: Prepare release binaries
- name: Prepare smoo-gadget release binary
if: github.event_name == 'release'
run: |
cp target/${{ matrix.target }}/release/smoo-gadget smoo-gadget-${{ matrix.name }}

- name: Prepare smoo-host release binary
if: github.event_name == 'release' && matrix.upload_host
run: |
cp target/${{ matrix.target }}/release/smoo-host smoo-host-${{ matrix.name }}

- name: Upload binaries to release
- name: Upload smoo-gadget binary to release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
name: ${{ github.event.release.name }}
files: |
smoo-gadget-${{ matrix.name }}

- name: Upload smoo-host binary to release
if: github.event_name == 'release' && matrix.upload_host
uses: softprops/action-gh-release@v2
with:
name: ${{ github.event.release.name }}
files: |
smoo-host-${{ matrix.name }}
11 changes: 11 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,11 @@ jobs:
name: smoo-gadget-aarch64
path: release-artifacts/smoo-gadget-aarch64

- uses: actions/download-artifact@v4
with:
name: smoo-gadget-armv7
path: release-artifacts/smoo-gadget-armv7

- uses: actions/download-artifact@v4
with:
name: smoo-host-aarch64
Expand All @@ -195,11 +200,13 @@ jobs:
cp release-artifacts/smoo-gadget-x86_64/smoo-gadget release-assets/smoo-gadget-x86_64
cp release-artifacts/smoo-host-x86_64/smoo-host release-assets/smoo-host-x86_64
cp release-artifacts/smoo-gadget-aarch64/smoo-gadget release-assets/smoo-gadget-aarch64
cp release-artifacts/smoo-gadget-armv7/smoo-gadget release-assets/smoo-gadget-armv7
cp release-artifacts/smoo-host-aarch64/smoo-host release-assets/smoo-host-aarch64

tar -C release-artifacts/smoo-gadget-x86_64 -czf release-assets/smoo-gadget-cli-x86_64-unknown-linux-musl.tar.gz smoo-gadget
tar -C release-artifacts/smoo-host-x86_64 -czf release-assets/smoo-host-cli-x86_64-unknown-linux-musl.tar.gz smoo-host
tar -C release-artifacts/smoo-gadget-aarch64 -czf release-assets/smoo-gadget-cli-aarch64-unknown-linux-musl.tar.gz smoo-gadget
tar -C release-artifacts/smoo-gadget-armv7 -czf release-assets/smoo-gadget-cli-armv7-unknown-linux-musleabihf.tar.gz smoo-gadget
tar -C release-artifacts/smoo-host-aarch64 -czf release-assets/smoo-host-cli-aarch64-unknown-linux-musl.tar.gz smoo-host

cp release-artifacts/APKBUILD/APKBUILD release-assets/APKBUILD
Expand All @@ -212,10 +219,12 @@ jobs:
test -f release-assets/smoo-gadget-x86_64
test -f release-assets/smoo-host-x86_64
test -f release-assets/smoo-gadget-aarch64
test -f release-assets/smoo-gadget-armv7
test -f release-assets/smoo-host-aarch64
test -f release-assets/smoo-gadget-cli-x86_64-unknown-linux-musl.tar.gz
test -f release-assets/smoo-host-cli-x86_64-unknown-linux-musl.tar.gz
test -f release-assets/smoo-gadget-cli-aarch64-unknown-linux-musl.tar.gz
test -f release-assets/smoo-gadget-cli-armv7-unknown-linux-musleabihf.tar.gz
test -f release-assets/smoo-host-cli-aarch64-unknown-linux-musl.tar.gz
test -f release-assets/APKBUILD
compgen -G 'release-assets/*.apk' >/dev/null
Expand All @@ -230,10 +239,12 @@ jobs:
release-assets/smoo-gadget-x86_64
release-assets/smoo-host-x86_64
release-assets/smoo-gadget-aarch64
release-assets/smoo-gadget-armv7
release-assets/smoo-host-aarch64
release-assets/smoo-gadget-cli-x86_64-unknown-linux-musl.tar.gz
release-assets/smoo-host-cli-x86_64-unknown-linux-musl.tar.gz
release-assets/smoo-gadget-cli-aarch64-unknown-linux-musl.tar.gz
release-assets/smoo-gadget-cli-armv7-unknown-linux-musleabihf.tar.gz
release-assets/smoo-host-cli-aarch64-unknown-linux-musl.tar.gz
release-assets/APKBUILD
release-assets/*.apk
Expand Down
Loading
Loading