Skip to content

update. fedora&debianの対応してるやつ. #88

update. fedora&debianの対応してるやつ.

update. fedora&debianの対応してるやつ. #88

Workflow file for this run

name: Test
on:
push:
pull_request:
jobs:
quality:
name: Quality Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Cache Rust artifacts
uses: Swatinem/rust-cache@v2
- name: Format
run: cargo fmt --all --check
- name: Build
run: cargo build --workspace --all-targets
- name: Clippy
run: cargo clippy --workspace --all-targets -- -D warnings
test:
name: Test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust artifacts
uses: Swatinem/rust-cache@v2
- name: Test
run: cargo test --workspace --all-targets
packaging-debian:
name: Packaging Check (Debian)
runs-on: ubuntu-latest
container: debian:sid
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install Debian packaging dependencies
run: |
apt-get update
apt-get install -y \
bash-completion \
build-essential \
cargo \
debhelper \
dh-cargo \
dpkg-dev \
gcc \
libstd-rust-dev \
librust-ansi-term-dev \
librust-assert-cmd-dev \
librust-chardetng-dev \
librust-chrono-dev \
librust-clap+cargo-dev \
librust-clap+derive-dev \
librust-config+ini-dev \
librust-crossbeam-channel-dev \
librust-crossterm-dev \
librust-ctrlc+termination-dev \
librust-encoding-rs-dev \
librust-flate2-dev \
librust-libloading-dev \
librust-nix+fs-dev \
librust-nix+process-dev \
librust-nix+signal-dev \
librust-nix+term-dev \
librust-ratatui+crossterm-dev \
librust-rayon-dev \
librust-regex-dev \
librust-predicates-dev \
librust-proptest-dev \
librust-serde+derive-dev \
librust-serde-json-dev \
librust-shell-words-dev \
librust-similar+bytes-dev \
librust-similar+inline-dev \
librust-similar+serde-dev \
librust-similar+text-dev \
librust-similar+unicode-dev \
librust-tempfile-dev \
librust-unicode-segmentation-dev \
librust-unicode-width-dev \
python3 \
rustc
- name: Debian package build
env:
DEB_BUILD_OPTIONS: nocheck
run: |
rm -rf debian
cp -a package/debian debian
dpkg-buildpackage -us -uc -d -b
packaging-fedora:
name: Packaging Check (Fedora)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup mise
uses: jdx/mise-action@v3
- name: Fedora mock rebuild (rawhide x86_64)
env:
FEDORA_PACKAGING_RELEASE: rawhide
FEDORA_MOCK_CHROOT: fedora-rawhide-x86_64
run: mise run fedora_mock_test
packaging-debian-strict:
name: Packaging Check (Debian, Strict)
runs-on: ubuntu-latest
container: debian:sid
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install Debian packaging dependencies
run: |
apt-get update
apt-get install -y \
bash-completion \
build-essential \
cargo \
debhelper \
dh-cargo \
dh-sequence-cargo \
dpkg-dev \
gcc \
python3 \
librust-ansi-term-dev \
librust-assert-cmd-dev \
librust-chardetng-dev \
librust-chrono-dev \
librust-clap+cargo-dev \
librust-clap+derive-dev \
librust-config+ini-dev \
librust-crossbeam-channel-dev \
librust-crossterm-dev \
librust-ctrlc+termination-dev \
librust-encoding-rs-dev \
librust-flate2-dev \
librust-libloading-dev \
librust-nix+fs-dev \
librust-nix+process-dev \
librust-nix+signal-dev \
librust-nix+term-dev \
librust-ratatui+crossterm-dev \
librust-rayon-dev \
librust-regex-dev \
librust-predicates-dev \
librust-serde+derive-dev \
librust-serde-json-dev \
librust-shell-words-dev \
librust-similar+bytes-dev \
librust-similar+inline-dev \
librust-similar+serde-dev \
librust-similar+text-dev \
librust-similar+unicode-dev \
librust-tempfile-dev \
librust-unicode-segmentation-dev \
librust-unicode-width-dev \
rustc
- name: Debian package build (strict)
env:
DEB_BUILD_OPTIONS: nocheck
run: |
rm -rf debian
cp -a package/debian debian
dpkg-buildpackage -us -uc -b
packaging-fedora-strict:
name: Packaging Check (Fedora, Strict)
runs-on: ubuntu-latest
container: fedora:latest
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install RPM packaging dependencies
run: |
dnf install -y \
bash-completion \
cargo \
rpm-build \
rust \
rust-packaging \
gcc
- name: Prepare RPM sources
run: |
VERSION="$(awk -F '\"' '/^version = / { print $2; exit }' Cargo.toml)"
TOPDIR="$PWD/rpmbuild"
SOURCEDIR="$TOPDIR/SOURCES"
SPECDIR="$TOPDIR/SPECS"
mkdir -p "$SOURCEDIR" "$SPECDIR" "$TOPDIR/BUILD" "$TOPDIR/RPMS" "$TOPDIR/SRPMS" "$TOPDIR/BUILDROOT"
cp package/fedora/hwatch.spec "$SPECDIR/hwatch.spec"
tar --exclude='./rpmbuild' --exclude='./target' --exclude='./package' --exclude-vcs -czf "$SOURCEDIR/hwatch-${VERSION}.tar.gz" --transform "s,^,hwatch-${VERSION}/," .
- name: RPM package build (strict)
run: |
rpmbuild -bs "$PWD/rpmbuild/SPECS/hwatch.spec" \
--define "_topdir $PWD/rpmbuild" \
--define "_target_cpu x86_64"
rpmbuild -bb "$PWD/rpmbuild/SPECS/hwatch.spec" \
--define "_topdir $PWD/rpmbuild" \
--define "_target_cpu x86_64" \
|| true
buildreq="$(find "$PWD/rpmbuild/SRPMS" -name '*.buildreqs.nosrc.rpm' -print -quit)"
dnf install -y "$buildreq"
rpmbuild -bb "$PWD/rpmbuild/SPECS/hwatch.spec" \
--define "_topdir $PWD/rpmbuild" \
--define "_target_cpu x86_64"