From 38e3cee1616d2145fb6b1f12fc0e9f1bc4ff2f8b Mon Sep 17 00:00:00 2001 From: Alonso Schaich Date: Fri, 18 Oct 2024 15:04:59 +0000 Subject: [PATCH 1/6] Create build_and_test.yml --- .github/workflows/build_and_test.yml | 114 +++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 .github/workflows/build_and_test.yml diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml new file mode 100644 index 0000000..c1e3234 --- /dev/null +++ b/.github/workflows/build_and_test.yml @@ -0,0 +1,114 @@ +name: Build and Test +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + autotools: + strategy: + matrix: + include: + - description: Default + - description: LLVM + cc: clang + cxx: clang++ + - description: Debug + configure_args: --enable-debug + - description: Profiling + configure_args: --enable-profile + - description: Address Sanitition + configure_args: --enable-sanitize-address + - description: Thread Sanitition + configure_args: --enable-sanitize-thread + - description: No Optimization + configure_args: --disable-opt + - description: Native Optimization + configure_args: --enable-opt-native + - description: Native Optimization + configure_args: --enable-opt-native + - description: Static Library + configure_args: --enable-static + - description: zlib + configure_args: --enable-zlib + apt_install: zlib1g-dev + - description: zstd + configure_args: --enable-zstd + apt_install: libzstd-dev + - description: lz4 + configure_args: --enable-lz4 + apt_install: liblz4-dev + - description: lzma + configure_args: --enable-lzma + apt_install: liblzma-dev + - description: most features + configure_args: --enable-most-features + apt_install: zlib1g-dev libzstd-dev liblz4-dev liblzma-dev + + name: autoconf workflow using ${{ matrix.description }} + + runs-on: ubuntu-latest + + permissions: + contents: read + + steps: + - name: "Install additional packages using pkg" + if: ${{ matrix.apt_install }} + run: | + sudo apt update + sudo apt install -y ${{ matrix.apt_install }} + + - name: "Clone Repository" + uses: actions/checkout@v4 + + - name: Create build directory + run: | + mkdir ${GITHUB_WORKSPACE}/build + + - name: Build + env: + CC: ${{ matrix.cc }} + CXX: ${{ matrix.cxx }} + run: | + ${GITHUB_WORKSPACE}/configure ${{ matrix.configure_args }} --prefix ${RUNNER_TEMP}/install-here + make + working-directory: ${{ github.workspace }}/build + + - name: Test + run: | + make check + working-directory: ${{ github.workspace }}/build + + - name: Install + run: | + make install + find ${RUNNER_TEMP}/install-here + working-directory: ${{ github.workspace }}/build + + nmake: + name: "nmake workflow" + + runs-on: windows-latest + + permissions: + contents: read + + steps: + - name: "Clone Repository" + uses: actions/checkout@v4 + + - name: "Enter-VsDevShell" + uses: ilammy/msvc-dev-cmd@v1 + + - name: Build + run: | + $vcpath=(Get-Item (& "${env:ProgramFiles(x86)}/Microsoft Visual Studio/Installer/vswhere.exe" -requires "Microsoft.VisualStudio.Component.VC.Tools.x86.x64" -find VC\Tools\MSVC\*\lib\x64\libcpmt.lib)[0]).Directory.Parent.Parent.FullName + nmake -f ${env:GITHUB_WORKSPACE}/VCMakefile "VCPATH=${vcpath}" + working-directory: ${{ github.workspace }} + + - name: Test + run: | + nmake -f ${env:GITHUB_WORKSPACE}/VCMakefile check + working-directory: ${{ github.workspace }} From 96e73da6e0fbab4a30450ee09e411e1fecb794bf Mon Sep 17 00:00:00 2001 From: Alonso Schaich Date: Fri, 18 Oct 2024 15:14:23 +0000 Subject: [PATCH 2/6] Ignore Thread Sanitizer Result --- .github/workflows/build_and_test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index c1e3234..1ed00f0 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -22,6 +22,7 @@ jobs: configure_args: --enable-sanitize-address - description: Thread Sanitition configure_args: --enable-sanitize-thread + continue_on_error: true - description: No Optimization configure_args: --disable-opt - description: Native Optimization @@ -77,6 +78,7 @@ jobs: working-directory: ${{ github.workspace }}/build - name: Test + continue-on-error: ${{ matrix.continue_on_error }} run: | make check working-directory: ${{ github.workspace }}/build From e17a9d5490a41e1c22b9edebb49e563d058f3e82 Mon Sep 17 00:00:00 2001 From: Alonso Schaich Date: Fri, 18 Oct 2024 15:20:04 +0000 Subject: [PATCH 3/6] Also ignore address sanitation results --- .github/workflows/build_and_test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 1ed00f0..81f2485 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -20,6 +20,7 @@ jobs: configure_args: --enable-profile - description: Address Sanitition configure_args: --enable-sanitize-address + continue_on_error: true - description: Thread Sanitition configure_args: --enable-sanitize-thread continue_on_error: true From 434ab1758149709a6e75745ccee0e31e75028e57 Mon Sep 17 00:00:00 2001 From: Alonso Schaich Date: Fri, 18 Oct 2024 15:30:47 +0000 Subject: [PATCH 4/6] Remove copy-paste artifact --- .github/workflows/build_and_test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 81f2485..ef7259d 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -28,8 +28,6 @@ jobs: configure_args: --disable-opt - description: Native Optimization configure_args: --enable-opt-native - - description: Native Optimization - configure_args: --enable-opt-native - description: Static Library configure_args: --enable-static - description: zlib From 2b6a6553ceb9960b8d82da88366be6ce4536ef3d Mon Sep 17 00:00:00 2001 From: Alonso Schaich Date: Tue, 22 Oct 2024 09:55:38 +0000 Subject: [PATCH 5/6] Don't ignore address-sanitizer failures Address Sanitizer detected bug was fixed in #55 , so don't allow the test to fail any longer in order to get a failure report if asan reports something new --- .github/workflows/build_and_test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index ef7259d..817e828 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -20,7 +20,6 @@ jobs: configure_args: --enable-profile - description: Address Sanitition configure_args: --enable-sanitize-address - continue_on_error: true - description: Thread Sanitition configure_args: --enable-sanitize-thread continue_on_error: true From 9d8ab8d5a955dde323716573508f4e6e90468c72 Mon Sep 17 00:00:00 2001 From: Alonso Schaich Date: Tue, 22 Oct 2024 12:35:15 +0000 Subject: [PATCH 6/6] Fix typo --- .github/workflows/build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 817e828..c161700 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -53,7 +53,7 @@ jobs: contents: read steps: - - name: "Install additional packages using pkg" + - name: "Install additional packages using apt" if: ${{ matrix.apt_install }} run: | sudo apt update