]> git.sesse.net Git - bcachefs-tools-debian/blob - .github/workflows/build-packages.yml
ci: bump github actions
[bcachefs-tools-debian] / .github / workflows / build-packages.yml
1 on: [push]
2
3 name: build
4
5 jobs:
6
7   deb:
8     name: bcachefs-tools-deb
9     strategy:
10       matrix:
11         os: [ubuntu-20.04, ubuntu-22.04]
12     runs-on: ${{ matrix.os }}
13     steps:
14       - uses: actions/checkout@v4
15       - name: Disable initramfs update
16         run: sudo sed -i 's/yes/no/g' /etc/initramfs-tools/update-initramfs.conf
17       - name: Disable man-db update
18         run: sudo rm -f /var/lib/man-db/auto-update
19       - name: Install build-deps
20         run: |
21           sudo apt-get update && sudo apt-get -y install pkg-config libaio-dev libblkid-dev \
22               libkeyutils-dev liblz4-dev libsodium-dev liburcu-dev libzstd-dev \
23               uuid-dev zlib1g-dev valgrind libudev-dev python3-docutils \
24               debhelper llvm clang libclang-dev rustc cargo \
25               devscripts
26       - name: Setup Rust
27         run: |
28           curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
29           echo "$HOME/.cargo/bin" >> $GITHUB_PATH
30       - name: Make deb
31         run: |
32           make -j`nproc` deb
33           mkdir dist && mv ../*.deb ./dist/
34       - name: Upload deb
35         uses: actions/upload-artifact@v3
36         with:
37           name: bcachefs-tools-deb_${{ matrix.os }}
38           path: dist
39
40   rpm:
41     name: bcachefs-tools-rpm
42     runs-on: ubuntu-latest
43     container:
44       image: docker.io/fedora:latest
45     steps:
46       - uses: actions/checkout@v4
47       - name: Install build essentials
48         run: dnf install -y nodejs make rpmdevtools yum-utils
49       - name: Setup Rust
50         run: |
51           curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
52           echo "$HOME/.cargo/bin" >> $GITHUB_PATH
53       - name: Install build-deps
54         run: dnf builddep -y packaging/bcachefs-tools.spec
55       - name: Make rpm
56         run: |
57           make -j`nproc` rpm
58           mv ${HOME}/rpmbuild ./
59       - name: Upload rpm
60         uses: actions/upload-artifact@v3
61         with:
62           name: bcachefs-tools-rpm
63           path: rpmbuild
64
65   msrv:
66     name: bcachefs-tools-msrv
67     runs-on: ubuntu-latest
68     steps:
69       - uses: actions/checkout@v4
70       - name: Disable initramfs update
71         run: sudo sed -i 's/yes/no/g' /etc/initramfs-tools/update-initramfs.conf
72       - name: Disable man-db update
73         run: sudo rm -f /var/lib/man-db/auto-update
74       - name: Install build-deps
75         run: |
76           sudo apt-get update && sudo apt-get -y install pkg-config libaio-dev libblkid-dev \
77               libkeyutils-dev liblz4-dev libsodium-dev liburcu-dev libzstd-dev \
78               uuid-dev zlib1g-dev valgrind libudev-dev python3-docutils libclang-dev
79       - name: Extract MSRV
80         run: |
81           MSRV=$(cargo metadata --format-version 1 --no-deps --manifest-path rust-src/Cargo.toml |
82                   jq -r '.packages[] | select(.name == "bcachefs-rust") | .rust_version')
83           echo "MSRV=$MSRV" >> $GITHUB_ENV
84       - name: Install Rust ${{ env.MSRV }} toolchain
85         run: |
86           rustup install --profile minimal ${{ env.MSRV }}
87       - name: Make
88         run: |
89           CARGO_TOOLCHAIN_VERSION=${{ env.MSRV }} make -j`nproc`