Skip to content

ci: Remove vcpkg, install libcurl via apt #541

ci: Remove vcpkg, install libcurl via apt

ci: Remove vcpkg, install libcurl via apt #541

Workflow file for this run

name: C/C++ CI
on: [push]
defaults:
run:
shell: bash
jobs:
build-linux:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
MH_STUFF_COMPILE_LIBRARY: [true, false]
compiler:
# Modern compilers available on ubuntu-latest (Ubuntu 22.04/24.04)
- exe: g++-12
deps: g++-12
- exe: g++-13
deps: g++-13
- exe: clang++-14
deps: clang-14 libc++-14-dev libc++abi-14-dev
- exe: clang++-15
deps: clang-15 libc++-15-dev libc++abi-15-dev
steps:
- uses: actions/checkout@v4
- name: Install compilers and tools
run: |
sudo apt-get update
sudo apt-get install -y ${{ matrix.compiler.deps }} ninja-build libcurl4-openssl-dev
pip3 install gcovr
echo "Ensuring programs work..."
${{ matrix.compiler.exe }} --version
ninja --version
gcovr --version
# - name: Run tests
# working-directory: ./test
# run: make -j`grep -c ^processor /proc/cpuinfo` ${{ matrix.compiler }}_test_output.txt
- name: Build
env:
CXX: ${{ matrix.compiler.exe }}
CXXFLAGS: -Wall -Wpedantic -Wextra -Werror
run: |
mkdir build
cd build
cmake --version
cmake -G Ninja \
-DMH_STUFF_COMPILE_LIBRARY=${{ matrix.MH_STUFF_COMPILE_LIBRARY }} \
../
cmake --build .
- name: Run tests
env:
CXX: ${{ matrix.compiler.exe }}
run: |
cd build
ctest --version
ctest --output-on-failure
gcovr --version
gcovr --root "../" --exclude ".*/catch.hpp" --exclude ".*/test_compile_file/.*" --exclude ".*/test/.*" --sort-percentage --html-details "results_${{ matrix.compiler.exe }}.html" .
- name: Save test results
if: ${{ matrix.MH_STUFF_COMPILE_LIBRARY }}
uses: actions/upload-artifact@v4
with:
name: gcovr_results_${{ matrix.compiler.exe }}
path: build/results*.html
# build-windows:
# runs-on: windows-latest
# strategy:
# fail-fast: false
# matrix:
# MH_STUFF_COMPILE_LIBRARY: [true, false]
# steps:
# - uses: actions/checkout@v4
# - uses: lukka/run-vcpkg@v11
# with:
# vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }}
# - uses: seanmiddleditch/gha-setup-ninja@v5
# - name: Setup compiler paths
# uses: ilammy/msvc-dev-cmd@v1
# - name: Build
# run: |
# mkdir build
# cd build
# cmake -G Ninja \
# -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" \
# -DMH_STUFF_COMPILE_LIBRARY=${{ matrix.MH_STUFF_COMPILE_LIBRARY }} \
# ../
# cmake --build .
# - name: Run tests
# run: |
# cd build
# ctest --output-on-failure
# registry-update:
# needs: [build-linux]
# runs-on: ubuntu-latest
# steps:
# - uses: PazerOP/vcpkg-registry-update@HEAD
# with:
# port-name: mh-stuff
# workflow-pat: ${{ secrets.WORKFLOW_PAT }}
all-checks-passed:
if: always()
needs: [build-linux]
runs-on: ubuntu-latest
steps:
- name: Verify all checks passed
run: |
if [[ "${{ needs.build-linux.result }}" != "success" ]]; then
echo "build-linux failed: ${{ needs.build-linux.result }}"
exit 1
fi
echo "All checks passed!"