Fix commandline handling #869
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: main | |
on: | |
push: | |
pull_request: | |
branches: | |
- master | |
jobs: | |
# Enforce the standard of g_malloc instead of malloc in the project | |
enforce-g_malloc: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
# Clone the whole branch, we have to fetch tags later | |
fetch-depth: 0 | |
- name: enforce-g_malloc | |
run: "! git grep -P '(?<!g_)malloc' ':!.valgrind.suppressions' ':!.github/workflows/main.yml'" | |
build: | |
strategy: | |
matrix: | |
CC: | |
- clang | |
- gcc | |
distro: | |
- alpine | |
- archlinux | |
- debian-stretch | |
- debian-buster | |
- fedora | |
- ubuntu-xenial | |
- ubuntu-bionic | |
- ubuntu-focal | |
env: | |
CC: ${{ matrix.CC }} | |
EXTRA_CFLAGS: "-Werror" | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
# Clone the whole branch, we have to fetch tags later | |
fetch-depth: 0 | |
# Fetch tags to determine proper version number inside git | |
- name: fetch tags | |
run: git fetch --tags | |
# We cannot pull tags with old distros, since there is no `.git`. See below. | |
if: "! (matrix.distro == 'ubuntu-bionic' || matrix.distro == 'ubuntu-xenial' || matrix.distro == 'debian-stretch')" | |
# The Github checkout Action doesn't support distros with git older than 2.18 | |
# With git<2.18 it downloads the code via API and does not clone it via git :facepalm: | |
# To succeed the tests, we have to manually replace the VERSION macro | |
- name: fix version number for old distros | |
run: 'sed -i "s/-non-git/-ci-oldgit-$GITHUB_SHA/" Makefile' | |
if: " (matrix.distro == 'ubuntu-bionic' || matrix.distro == 'ubuntu-xenial' || matrix.distro == 'debian-stretch')" | |
- name: build | |
run: make -j all dunstify test/test | |
- name: test | |
run: make -j test | |
- name: installation | |
run: ./test/test-install.sh | |
- name: valgrind memleaks | |
run: | | |
make clean | |
make -j test-valgrind | |
- name: coverage | |
run: | | |
make clean | |
make -j test-coverage | |
- name: Generate coverage report | |
run: lcov -c -d . -o lcov.info | |
if: "matrix.CC == 'gcc'" | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: unittests | |
name: ${{ matrix.distro }}-${{ matrix.CC }} | |
fail_ci_if_error: true | |
if: "matrix.CC == 'gcc'" | |
runs-on: ubuntu-latest | |
container: | |
image: dunst/ci:${{ matrix.distro }} | |
doxygen: | |
strategy: | |
matrix: | |
distro: | |
- misc-doxygen | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
# Clone the whole branch, we have to fetch tags later | |
fetch-depth: 0 | |
- name: doxygen | |
run: make -j doc-doxygen | |
runs-on: ubuntu-latest | |
container: | |
image: dunst/ci:${{ matrix.distro }} |