chore: general maintenance #2713
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: Continuous Integration | |
on: | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
cspell: | |
name: CSpell | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Spell Check | |
uses: streetsidesoftware/cspell-action@v6 | |
commitlint: | |
name: Commitlint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Lint | |
uses: wagoid/commitlint-github-action@v6 | |
reuse: | |
name: REUSE Compliance | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Lint | |
uses: fsfe/reuse-action@v5 | |
with: | |
args: lint | |
translations: | |
name: Translations | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Check | |
run: | | |
./tests/extra/potfiles-check.sh | |
pre-test: | |
name: Pre-Tests | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: false | |
- name: ShellCheck | |
if: ${{ always() }} | |
uses: reviewdog/action-shellcheck@v1 | |
with: | |
reporter: github-pr-review | |
fail_on_error: true | |
build: | |
name: Build (Documentation) | |
needs: [pre-test] | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/${{ github.repository }}:${{ github.base_ref }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Build | |
run: | | |
meson setup --buildtype=release \ | |
-Ddocumentation=true \ | |
_build | |
meson compile -C _build | |
- name: Upload | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Documentation | |
path: _build/doc/sdk/valent | |
analyze: | |
name: Static Analysis | |
needs: [pre-test] | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/${{ github.repository }}:${{ github.base_ref }} | |
strategy: | |
matrix: | |
suite: [abidiff, cppcheck] | |
include: | |
- suite: abidiff | |
setup-args: | | |
-Dintrospection=false | |
-Dplugins=false | |
- suite: cppcheck | |
setup-args: | | |
-Dintrospection=false | |
-Dtests=true | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Analyze | |
uses: andyholmes/actuary@main | |
with: | |
suite: ${{ matrix.suite }} | |
setup-args: ${{ matrix.setup-args }} | |
abidiff-lib: libvalent-1.so | |
cppcheck-args: | | |
-Itests/fixtures | |
--library=tests/extra/cppcheck.cfg | |
--suppressions-list=tests/extra/cppcheck.supp | |
cppcheck-path: src | |
- name: Report | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Static Analysis (${{ matrix.suite }}) | |
path: _build/meson-logs | |
test: | |
name: Tests | |
needs: [pre-test] | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/${{ github.repository }}:${{ github.base_ref }} | |
strategy: | |
matrix: | |
compiler: [gcc, llvm] | |
suite: [test, asan, tsan, analyzer] | |
include: | |
- suite: test | |
setup-args: | | |
-Dtests=true | |
test-args: | | |
--repeat=3 | |
- suite: asan | |
setup-args: | | |
-Dintrospection=false | |
-Dtests=true | |
- suite: tsan | |
setup-args: | | |
-Dintrospection=false | |
-Dtests=true | |
- suite: analyzer | |
setup-args: | | |
-Dintrospection=false | |
-Dtests=true | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Test | |
id: test | |
uses: andyholmes/actuary@main | |
with: | |
suite: ${{ matrix.suite }} | |
compiler: ${{ matrix.compiler }} | |
setup-args: ${{ matrix.setup-args }} | |
test-args: ${{ matrix.test-args }} | |
test-coverage: ${{ matrix.compiler == 'gcc' && matrix.suite == 'test' }} | |
lcov-include: '${{ github.workspace }}/src/*' | |
- name: Test Report | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Tests (${{ matrix.compiler }}, ${{ matrix.suite }}) | |
path: ${{ steps.test.outputs.log }} | |
- name: Coverage Report | |
if: ${{ matrix.compiler == 'gcc' && matrix.suite == 'test' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Tests (coverage) | |
path: ${{ steps.test.outputs.coverage-html }} | |
installed-tests: | |
name: Tests (Installed) | |
needs: [pre-test] | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/${{ github.repository }}:${{ github.base_ref }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Build | |
run: | | |
meson setup --buildtype=release \ | |
--prefix=/usr \ | |
-Dtests=true \ | |
-Dfuzz_tests=false \ | |
_build | |
meson compile -C _build | |
meson install -C _build | |
- name: Test | |
run: | | |
dbus-run-session \ | |
xvfb-run -d \ | |
gnome-desktop-testing-runner --log-directory=_build/meson-logs \ | |
libvalent-1 | |
- name: Test Report | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Tests (Installed) | |
path: _build/meson-logs | |
flatpak: | |
name: Tests (Flatpak) | |
needs: [pre-test] | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/andyholmes/flatter/gnome:47 | |
options: --privileged | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Build | |
uses: andyholmes/flatter@main | |
with: | |
files: | | |
build-aux/flatpak/ca.andyholmes.Valent.json | |
cache-key: '' | |
run-tests: true | |
test-config-opts: | | |
--buildtype=debugoptimized | |
-Dtests=true | |
test-modules: | | |
ca.andyholmes.Valent.Tests.json | |
upload-bundles: true | |
flatpak-unstable: | |
name: Tests (Flatpak Unstable) | |
needs: [pre-test] | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/andyholmes/flatter/gnome:master | |
options: --privileged | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Build | |
uses: andyholmes/flatter@main | |
with: | |
files: | | |
build-aux/flatpak/ca.andyholmes.Valent.Devel.json | |
cache-key: '' | |
run-tests: true | |
upload-bundles: true |