bcachefs-tools/.github/workflows/build-packages.yml
Alexander Fougner eb13ae8d5e Add packaging workflow
Package and publish deb+rpm for easy testing

Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-03-19 19:24:28 +01:00

67 lines
2.0 KiB
YAML

on: [push]
name: build
env:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
jobs:
deb:
name: bcachefs-tools-deb
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- 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 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 \
debhelper llvm clang libclang-dev rustc cargo \
devscripts
- 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@v3
- 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