--- /dev/null
+on: [push]
+
+name: build
+
+jobs:
+
+ deb:
+ name: bcachefs-tools-deb
+ strategy:
+ matrix:
+ os: [ubuntu-20.04, ubuntu-22.04]
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v4
+ - name: Disable initramfs update
+ run: sudo sed -i 's/yes/no/g' /etc/initramfs-tools/update-initramfs.conf
+ - name: Disable man-db update
+ run: sudo rm -f /var/lib/man-db/auto-update
+ - name: Install build-deps
+ run: |
+ sudo apt-get update && sudo apt-get -y --no-install-recommends install \
+ valgrind \
+ equivs devscripts
+ mk-build-deps
+ sudo apt install ./bcachefs-tools-build-deps_*.deb
+ - name: Setup Rust
+ run: |
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
+ - name: Make deb
+ run: |
+ make -j`nproc` deb
+ mkdir dist && mv ../*.deb ./dist/
+ - name: Upload deb
+ uses: actions/upload-artifact@v3
+ with:
+ name: bcachefs-tools-deb_${{ matrix.os }}
+ path: dist
+
+ rpm:
+ name: bcachefs-tools-rpm
+ runs-on: ubuntu-latest
+ container:
+ image: docker.io/fedora:latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install build essentials
+ run: dnf install -y nodejs make rpmdevtools yum-utils
+ - name: Setup Rust
+ run: |
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
+ - name: Install build-deps
+ run: dnf builddep -y packaging/bcachefs-tools.spec
+ - name: Make rpm
+ run: |
+ make -j`nproc` rpm
+ mv ${HOME}/rpmbuild ./
+ - name: Upload rpm
+ uses: actions/upload-artifact@v3
+ with:
+ name: bcachefs-tools-rpm
+ path: rpmbuild
+
+ msrv:
+ name: bcachefs-tools-msrv
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Disable initramfs update
+ run: sudo sed -i 's/yes/no/g' /etc/initramfs-tools/update-initramfs.conf
+ - name: Disable man-db update
+ run: sudo rm -f /var/lib/man-db/auto-update
+ - name: Install build-deps
+ run: |
+ sudo apt-get update && sudo apt-get -y --no-install-recommends install pkg-config libaio-dev libblkid-dev \
+ libkeyutils-dev liblz4-dev libsodium-dev liburcu-dev libzstd-dev \
+ uuid-dev zlib1g-dev valgrind libudev-dev python3-docutils libclang-dev
+ - name: Extract MSRV
+ run: |
+ MSRV=$(cargo metadata --format-version 1 --no-deps |
+ jq -r '.packages[] | select(.name == "bcachefs-tools") | .rust_version')
+ echo "MSRV=$MSRV" >> $GITHUB_ENV
+ - name: Install Rust ${{ env.MSRV }} toolchain
+ run: |
+ rustup install --profile minimal ${{ env.MSRV }}
+ - name: Make
+ run: |
+ CARGO_TOOLCHAIN_VERSION=${{ env.MSRV }} make -j`nproc`