diff --git a/.github/workflows/clang18.yml b/.github/workflows/clang18.yml index 299b861..7d8f05d 100644 --- a/.github/workflows/clang18.yml +++ b/.github/workflows/clang18.yml @@ -1,6 +1,7 @@ +--- name: clang 18 -on: +"on": push: branches: - main @@ -14,21 +15,20 @@ jobs: runs-on: ubuntu-24.04 steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: sudo apt install build-essential nettle-dev time clang-18 - - name: bootstrap - run: ./bootstrap.sh - - name: configure - run: ./configure CXX=clang++-18 - - name: build - run: make - - name: check - run: make check - - name: store the logs as an artifact - if: ${{ always() }} - uses: actions/upload-artifact@v4 - with: - path: '**/*.log' - + - name: checkout + uses: actions/checkout@v4 + - name: install packages + run: sudo apt install build-essential nettle-dev time clang-18 + - name: bootstrap + run: ./bootstrap.sh + - name: configure + run: ./configure CXX=clang++-18 + - name: build + run: make + - name: check + run: make check + - name: store the logs as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + path: '**/*.log' diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index cc7b490..1c83bb2 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,3 +1,4 @@ +--- # For most projects, this workflow file will not need changing; you simply need # to commit it to your repository. # @@ -11,12 +12,12 @@ # name: "CodeQL" -on: +"on": push: - branches: [ "main", "devel" ] + branches: ["main", "devel"] pull_request: # The branches below must be a subset of the branches above - branches: [ "main", "devel" ] + branches: ["main", "devel"] schedule: - cron: '39 4 * * 0' @@ -32,39 +33,40 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'cpp' ] + language: ['cpp'] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ] # Use only 'java' to analyze code written in Java, Kotlin or both # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support steps: - - name: Checkout repository - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install autoconf autoconf-archive nettle-dev build-essential g++ -y + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install autoconf autoconf-archive nettle-dev build-essential g++ -y - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality - - name: Build - run: | - ./bootstrap.sh - ./configure - make + # For more details on CodeQL's query packs, refer to: + # https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + - name: Build + run: | + ./bootstrap.sh + ./configure + make - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 - with: - category: "/language:${{matrix.language}}" + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/cppcheck.yml b/.github/workflows/cppcheck.yml index bd2bccd..8ac7f10 100644 --- a/.github/workflows/cppcheck.yml +++ b/.github/workflows/cppcheck.yml @@ -1,6 +1,7 @@ +--- name: cppcheck -on: +"on": push: branches: - main @@ -14,15 +15,14 @@ jobs: runs-on: ubuntu-20.04 steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: sudo apt install cppcheck - - name: run cppcheck - run: cppcheck/run_cppcheck.sh - - name: store the cppcheck output as an artifact - if: ${{ always() }} - uses: actions/upload-artifact@v4 - with: - path: 'cppcheck/out/*' - + - name: checkout + uses: actions/checkout@v4 + - name: install packages + run: sudo apt install cppcheck + - name: run cppcheck + run: cppcheck/run_cppcheck.sh + - name: store the cppcheck output as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + path: 'cppcheck/out/*' diff --git a/.github/workflows/debian-bookworm.yml b/.github/workflows/debian-bookworm.yml index 06d0f84..c189d0c 100644 --- a/.github/workflows/debian-bookworm.yml +++ b/.github/workflows/debian-bookworm.yml @@ -1,6 +1,7 @@ +--- name: debian 12 bookworm -on: +"on": push: branches: - main @@ -14,29 +15,29 @@ jobs: container: image: debian:bookworm-slim steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: apt-get update && apt-get install autoconf build-essential nettle-dev libcap2-bin --yes - - name: bootstrap - run: ./bootstrap.sh - - name: configure - run: ./configure --enable-warnings CXXFLAGS=-std=c++17 - - name: make - run: make - - name: make check - run: make check - - name: make distcheck - run: make distcheck CXXFLAGS=-std=c++17 - - name: build with hardened build flags - run: | - make clean - eval $(DEB_CXXFLAGS_APPEND=-std=c++17 DEB_BUILD_MAINT_OPTIONS="hardening=+all qa=+all,-canary reproducible=+all" dpkg-buildflags --export=sh) - ./configure - make - make check - - name: store the logs as an artifact - if: ${{ always() }} - uses: actions/upload-artifact@v4 - with: - path: '**/*.log' + - name: checkout + uses: actions/checkout@v4 + - name: install packages + run: apt-get update && apt-get install autoconf build-essential nettle-dev libcap2-bin --yes + - name: bootstrap + run: ./bootstrap.sh + - name: configure + run: ./configure --enable-warnings CXXFLAGS=-std=c++17 + - name: make + run: make + - name: make check + run: make check + - name: make distcheck + run: make distcheck CXXFLAGS=-std=c++17 + - name: build with hardened build flags + run: | + make clean + eval $(DEB_CXXFLAGS_APPEND=-std=c++17 DEB_BUILD_MAINT_OPTIONS="hardening=+all qa=+all,-canary reproducible=+all" dpkg-buildflags --export=sh) + ./configure + make + make check + - name: store the logs as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + path: '**/*.log' diff --git a/.github/workflows/debian-bullseye.yml b/.github/workflows/debian-bullseye.yml index f1087bb..7501383 100644 --- a/.github/workflows/debian-bullseye.yml +++ b/.github/workflows/debian-bullseye.yml @@ -1,6 +1,7 @@ +--- name: debian 11 bullseye -on: +"on": push: branches: - main @@ -14,29 +15,29 @@ jobs: container: image: debian:bullseye-slim steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: apt-get update && apt-get install autoconf build-essential nettle-dev libcap2-bin --yes - - name: bootstrap - run: ./bootstrap.sh - - name: configure - run: ./configure --enable-warnings CXXFLAGS=-std=c++17 - - name: make - run: make - - name: make check - run: make check - - name: make distcheck - run: make distcheck CXXFLAGS=-std=c++17 - - name: build with hardened build flags - run: | - make clean - eval $(DEB_CXXFLAGS_APPEND=-std=c++17 DEB_BUILD_MAINT_OPTIONS="hardening=+all qa=+all,-canary reproducible=+all" dpkg-buildflags --export=sh) - ./configure - make - make check - - name: store the logs as an artifact - if: ${{ always() }} - uses: actions/upload-artifact@v4 - with: - path: '**/*.log' + - name: checkout + uses: actions/checkout@v4 + - name: install packages + run: apt-get update && apt-get install autoconf build-essential nettle-dev libcap2-bin --yes + - name: bootstrap + run: ./bootstrap.sh + - name: configure + run: ./configure --enable-warnings CXXFLAGS=-std=c++17 + - name: make + run: make + - name: make check + run: make check + - name: make distcheck + run: make distcheck CXXFLAGS=-std=c++17 + - name: build with hardened build flags + run: | + make clean + eval $(DEB_CXXFLAGS_APPEND=-std=c++17 DEB_BUILD_MAINT_OPTIONS="hardening=+all qa=+all,-canary reproducible=+all" dpkg-buildflags --export=sh) + ./configure + make + make check + - name: store the logs as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + path: '**/*.log' diff --git a/.github/workflows/debian-trixie.yml b/.github/workflows/debian-trixie.yml index f13b320..6a31b2b 100644 --- a/.github/workflows/debian-trixie.yml +++ b/.github/workflows/debian-trixie.yml @@ -1,6 +1,7 @@ +--- name: debian 13 trixie -on: +"on": push: branches: - main @@ -14,29 +15,29 @@ jobs: container: image: debian:trixie-slim steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: apt-get update && apt-get install autoconf build-essential nettle-dev libcap2-bin --yes - - name: bootstrap - run: ./bootstrap.sh - - name: configure - run: ./configure --enable-warnings CXXFLAGS=-std=c++17 - - name: make - run: make - - name: make check - run: make check - - name: make distcheck - run: make distcheck CXXFLAGS=-std=c++17 - - name: build with hardened build flags - run: | - make clean - eval $(DEB_CXXFLAGS_APPEND=-std=c++17 DEB_BUILD_MAINT_OPTIONS="hardening=+all qa=+all,-canary reproducible=+all" dpkg-buildflags --export=sh) - ./configure - make - make check - - name: store the logs as an artifact - if: ${{ always() }} - uses: actions/upload-artifact@v4 - with: - path: '**/*.log' + - name: checkout + uses: actions/checkout@v4 + - name: install packages + run: apt-get update && apt-get install autoconf build-essential nettle-dev libcap2-bin --yes + - name: bootstrap + run: ./bootstrap.sh + - name: configure + run: ./configure --enable-warnings CXXFLAGS=-std=c++17 + - name: make + run: make + - name: make check + run: make check + - name: make distcheck + run: make distcheck CXXFLAGS=-std=c++17 + - name: build with hardened build flags + run: | + make clean + eval $(DEB_CXXFLAGS_APPEND=-std=c++17 DEB_BUILD_MAINT_OPTIONS="hardening=+all qa=+all,-canary reproducible=+all" dpkg-buildflags --export=sh) + ./configure + make + make check + - name: store the logs as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + path: '**/*.log' diff --git a/.github/workflows/deterministic.yml b/.github/workflows/deterministic.yml index 9cf4ef1..e13c13a 100644 --- a/.github/workflows/deterministic.yml +++ b/.github/workflows/deterministic.yml @@ -1,6 +1,7 @@ +--- name: test deterministic operation -on: +"on": push: branches: - main @@ -14,21 +15,20 @@ jobs: runs-on: ubuntu-24.04 steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: sudo apt install build-essential nettle-dev time disorderfs - - name: bootstrap - run: ./bootstrap.sh - - name: configure - run: ./configure CXXFLAGS=-std=c++17 - - name: make - run: make - - name: run determinism test - run: testcases/verify_deterministic_operation.sh - - name: store logs as artifacts - if: ${{ always() }} - uses: actions/upload-artifact@v4 - with: - path: '**/*.log' - + - name: checkout + uses: actions/checkout@v4 + - name: install packages + run: sudo apt install build-essential nettle-dev time disorderfs + - name: bootstrap + run: ./bootstrap.sh + - name: configure + run: ./configure CXXFLAGS=-std=c++17 + - name: make + run: make + - name: run determinism test + run: testcases/verify_deterministic_operation.sh + - name: store logs as artifacts + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + path: '**/*.log' diff --git a/.github/workflows/fedora-40.yml b/.github/workflows/fedora-40.yml index ebc004d..e6d159f 100644 --- a/.github/workflows/fedora-40.yml +++ b/.github/workflows/fedora-40.yml @@ -1,6 +1,7 @@ +--- name: fedora 40 -on: +"on": push: branches: - main @@ -14,22 +15,22 @@ jobs: container: image: fedora:40 steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: yes | dnf install automake gcc which g++ nettle-devel - - name: bootstrap - run: ./bootstrap.sh - - name: configure - run: ./configure --enable-warnings CXXFLAGS=-std=c++17 - - name: make - run: make -j $(nproc) - - name: make check - run: make check - - name: make distcheck - run: make distcheck CXXFLAGS=-std=c++17 - - name: store the logs as an artifact - if: ${{ always() }} - uses: actions/upload-artifact@v4 - with: - path: '**/*.log' + - name: checkout + uses: actions/checkout@v4 + - name: install packages + run: yes | dnf install automake gcc which g++ nettle-devel + - name: bootstrap + run: ./bootstrap.sh + - name: configure + run: ./configure --enable-warnings CXXFLAGS=-std=c++17 + - name: make + run: make -j $(nproc) + - name: make check + run: make check + - name: make distcheck + run: make distcheck CXXFLAGS=-std=c++17 + - name: store the logs as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + path: '**/*.log' diff --git a/.github/workflows/fedora-41.yml b/.github/workflows/fedora-41.yml index 572ad5c..6e634be 100644 --- a/.github/workflows/fedora-41.yml +++ b/.github/workflows/fedora-41.yml @@ -1,6 +1,7 @@ +--- name: fedora 41 -on: +"on": push: branches: - main @@ -14,22 +15,22 @@ jobs: container: image: fedora:41 steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: yes | dnf install automake gcc which g++ nettle-devel - - name: bootstrap - run: ./bootstrap.sh - - name: configure - run: ./configure --enable-warnings CXXFLAGS=-std=c++17 - - name: make - run: make -j $(nproc) - - name: make check - run: make check - - name: make distcheck - run: make distcheck CXXFLAGS=-std=c++17 - - name: store the logs as an artifact - if: ${{ always() }} - uses: actions/upload-artifact@v4 - with: - path: '**/*.log' + - name: checkout + uses: actions/checkout@v4 + - name: install packages + run: yes | dnf install automake gcc which g++ nettle-devel + - name: bootstrap + run: ./bootstrap.sh + - name: configure + run: ./configure --enable-warnings CXXFLAGS=-std=c++17 + - name: make + run: make -j $(nproc) + - name: make check + run: make check + - name: make distcheck + run: make distcheck CXXFLAGS=-std=c++17 + - name: store the logs as an artifact + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + path: '**/*.log' diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml index 224cce3..06adf1b 100644 --- a/.github/workflows/formatting.yml +++ b/.github/workflows/formatting.yml @@ -1,6 +1,7 @@ +--- name: code formatting -on: +"on": push: branches: - main @@ -14,30 +15,29 @@ jobs: runs-on: ubuntu-24.04 steps: - - name: checkout - uses: actions/checkout@v4 - - name: install packages - run: sudo apt install clang-18 - - name: run clang format - run: | - ./do_clang_format.sh - - name: check for differences - run: | - git diff >clang-format.patch - if [ $(wc -c clang-format.patch + if [ $(wc -c