use original #269
This file contains 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: checkstyle | |
on: | |
push: | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
checkstyle: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install dependencies | |
run: | | |
# for x in lxd core20 snapd; do sudo snap remove $x; done | |
sudo apt-get purge -y snapd google-chrome-stable firefox | |
ONLY_DEPS=1 .github/workflows/scripts/qemu-3-deps.sh ubuntu22 | |
sudo apt-get install -y cppcheck devscripts mandoc pax-utils shellcheck | |
sudo python -m pipx install --quiet flake8 | |
# confirm that the tools are installed | |
# the build system doesn't fail when they are not | |
checkbashisms --version | |
cppcheck --version | |
flake8 --version | |
scanelf --version | |
shellcheck --version | |
- name: Prepare | |
run: | | |
sed -i '/DEBUG_CFLAGS="-Werror"/s/^/#/' config/zfs-build.m4 | |
./autogen.sh | |
- name: Configure | |
run: | | |
./configure | |
- name: Make | |
run: | | |
make -j$(nproc) --no-print-directory --silent | |
- name: Checkstyle | |
run: | | |
make -j$(nproc) --no-print-directory --silent checkstyle | |
- name: Lint | |
run: | | |
make -j$(nproc) --no-print-directory --silent lint | |
- name: CheckABI | |
id: CheckABI | |
run: | | |
docker run -v $PWD:/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent checkabi | |
- name: StoreABI | |
if: failure() && steps.CheckABI.outcome == 'failure' | |
run: | | |
docker run -v $PWD:/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent storeabi | |
- name: Prepare artifacts | |
if: failure() && steps.CheckABI.outcome == 'failure' | |
run: | | |
find -name *.abi | tar -cf abi_files.tar -T - | |
- uses: actions/upload-artifact@v4 | |
if: failure() && steps.CheckABI.outcome == 'failure' | |
with: | |
name: New ABI files (use only if you're sure about interface changes) | |
path: abi_files.tar |