update. fedora&debianの対応してるやつ. ci対応. #86
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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) | |
| 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" |