50 lines
1.6 KiB
YAML
50 lines
1.6 KiB
YAML
name: Build and Test
|
|
|
|
on:
|
|
- pull_request
|
|
- push
|
|
|
|
jobs:
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Configure
|
|
# We enforce -Wdeclaration-after-statement because Qt project needs to
|
|
# build MD4C with Integrity compiler which chokes whenever a declaration
|
|
# is not at the beginning of a block.
|
|
run: CFLAGS='--coverage -g -O0 -Wall -Wdeclaration-after-statement -Werror' cmake -DCMAKE_BUILD_TYPE=Debug -G 'Unix Makefiles' .
|
|
- name: Build
|
|
run: make VERBOSE=1
|
|
- name: Test
|
|
run: ./scripts/run-tests.sh
|
|
- name: Code Coverage Report
|
|
if: ${{ github.event_name == 'push' }}
|
|
continue-on-error: true
|
|
run: |
|
|
sudo apt-get install -y lcov
|
|
lcov --directory . --capture --output-file coverage.info
|
|
lcov --remove coverage.info '/usr/*' --output-file coverage.info
|
|
lcov --list coverage.info
|
|
bash <(curl -s https://codecov.io/bash)
|
|
|
|
windows-32:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: microsoft/setup-msbuild@v1.3.1
|
|
- name: Configure
|
|
run: cmake -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 17 2022" -A Win32 .
|
|
- name: Build
|
|
run: msbuild.exe md4c.sln /p:Configuration=Release /p:Platform=Win32
|
|
|
|
windows-64:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: microsoft/setup-msbuild@v1.3.1
|
|
- name: Configure
|
|
run: cmake -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 17 2022" -A x64 .
|
|
- name: Build
|
|
run: msbuild.exe md4c.sln /p:Configuration=Release /p:Platform=x64
|