Avoid two 64-bit divisions per scanned block
[zfs.git] / .github / workflows / checkstyle.yaml
blob8dafdcf07fed3ab4f81c7c11997a888dadab538f
1 name: checkstyle
3 on:
4   push:
5   pull_request:
7 jobs:
8   checkstyle:
9     runs-on: ubuntu-latest
10     steps:
11     - uses: actions/checkout@v2
12       with:
13         ref: ${{ github.event.pull_request.head.sha }}
14     - name: Install dependencies
15       run: |
16         sudo apt-get update
17         sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt apt-get install -qq
18         sudo apt-get install -qq mandoc cppcheck pax-utils devscripts
19         sudo python3 -m pip install --quiet flake8
20         sudo apt-get clean
22         # confirm that the tools are installed
23         # the build system doesn't fail when they are not
24         checkbashisms --version
25         cppcheck --version
26         flake8 --version
27         scanelf --version
28         shellcheck --version
29     - name: Prepare
30       run: |
31         ./autogen.sh
32         ./configure
33         make -j$(nproc) --no-print-directory --silent
34     - name: Checkstyle
35       run: |
36         make -j$(nproc) --no-print-directory --silent checkstyle
37     - name: Lint
38       run: |
39         make -j$(nproc) --no-print-directory --silent lint
40     - name: CheckABI
41       id: CheckABI
42       run: |
43         docker run -v $PWD:/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent checkabi
44     - name: StoreABI
45       if: failure() && steps.CheckABI.outcome == 'failure'
46       run: |
47         docker run -v $PWD:/source ghcr.io/openzfs/libabigail make -j$(nproc) --no-print-directory --silent storeabi
48     - name: Prepare artifacts
49       if: failure() && steps.CheckABI.outcome == 'failure'
50       run: |
51         find -name *.abi | tar -cf abi_files.tar -T -
52     - uses: actions/upload-artifact@v2
53       if: failure() && steps.CheckABI.outcome == 'failure'
54       with:
55         name: New ABI files (use only if you're sure about interface changes)
56         path: abi_files.tar