name: CI
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- run: deno fmt --check
- run: cargo fmt --check
- run: cargo build
- run: cargo test
- run: cargo doc
- run: cargo build --release
- uses: actions/upload-artifact@v7
with:
name: pmbs-x86_64
path: target/release/pmbs
- run: cd etc-pmbs && cp home.toml.en.example home.en.toml && cp home.toml.zh.example home.zh.toml
- run: env PMBS_DIR_ETC=etc-pmbs RUST_LOG=debug target/release/pmbs config test
- run: |
rustup target add aarch64-unknown-linux-gnu riscv64gc-unknown-linux-gnu
- run: |
sudo apt-get update && \
sudo apt-get -y install \
binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
binutils-riscv64-linux-gnu gcc-riscv64-linux-gnu g++-riscv64-linux-gnu
- run: cargo build --release --target aarch64-unknown-linux-gnu
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
CC_aarch64_unknown_linux_gnu: aarch64-linux-gnu-gcc
CXX_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++
- uses: actions/upload-artifact@v7
with:
name: pmbs-aarch64
path: target/aarch64-unknown-linux-gnu/release/pmbs
- run: cargo build --release --target riscv64gc-unknown-linux-gnu
env:
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER: riscv64-linux-gnu-gcc
CC_riscv64gc_unknown_linux_gnu: riscv64-linux-gnu-gcc
CXX_riscv64gc_unknown_linux_gnu: riscv64-linux-gnu-g++
- uses: actions/upload-artifact@v7
with:
name: pmbs-rv64gc
path: target/riscv64gc-unknown-linux-gnu/release/pmbs
- run: |
sudo apt-get update && \
sudo apt-get -y install podman-toolbox
- run: echo "SHELL=/usr/bin/bash" >> "$GITHUB_ENV"
- run: make pmbs-src
- run: |
cp target/release/pmbs build-aur/ && \
cp pmbs-src.tar build-aur/
- run: toolbox create -y -i quay.io/toolbx/arch-toolbox arch
- run: |
toolbox run -c arch \
sudo pacman -Syu --noconfirm
- run: |
toolbox run -c arch \
sudo pacman -S --noconfirm btrfs-progs
- run: |
cd build-aur && \
toolbox run -c arch \
makepkg
- uses: actions/upload-artifact@v7
with:
name: pmbs-bin-0.1.1-1-x86_64.pkg.tar.zst
path: build-aur/pmbs-bin-0.1.1-1-x86_64.pkg.tar.zst
- run: toolbox create -y -d fedora -r 44
- run: |
toolbox run -c fedora-toolbox-44 \
sudo dnf install -y rpm-build rpm-devel rpmdevtools make btrfs-progs
- run: |
toolbox run -c fedora-toolbox-44 \
rpmdev-setuptree
- run: |
cp build-rpm/pmbs.spec ~/rpmbuild/SPECS/ && \
cp target/release/pmbs ~/rpmbuild/SOURCES/ && \
cp pmbs-src.tar ~/rpmbuild/SOURCES/
- run: |
toolbox run -c fedora-toolbox-44 \
rpmbuild -bb ~/rpmbuild/SPECS/pmbs.spec
- uses: actions/upload-artifact@v7
with:
name: pmbs-0.1.1-1.fc44.x86_64.rpm
path: ~/rpmbuild/RPMS/x86_64/pmbs-0.1.1-1.fc44.x86_64.rpm
- run: cd build-deb && make
- uses: actions/upload-artifact@v7
with:
name: pmbs.deb
path: build-deb/pmbs.deb