Skip to content

ci: automate releases and refactor ci #2255

ci: automate releases and refactor ci

ci: automate releases and refactor ci #2255

Workflow file for this run

name: Portal CI
on: [push, pull_request]
env:
TESTS_TIMEOUT: 10 # in minutes
jobs:
check:
name: CI Build
runs-on: ubuntu-latest
strategy:
matrix:
compiler: ['gcc', 'clang']
sanitizer: ['address']
container:
image: ghcr.io/${{ github.repository_owner }}/xdg-desktop-portal-build:latest
env:
CFLAGS: -Wp,-D_FORTIFY_SOURCE=2
CC: ${{ matrix.compiler }}
TEST_IN_CI: 1
G_MESSAGES_DEBUG: all
options: --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined
steps:
- name: Configure environment
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
echo XDG_DATA_DIRS=$GITHUB_WORKSPACE/tests/share:/usr/local/share:/usr/share | tee -a $GITHUB_ENV
- name: Check out xdg-desktop-portal
uses: actions/checkout@v4
- name: Build xdg-desktop-portal
run: |
meson setup _build $MESON_OPTIONS
meson compile -C _build
env:
MESON_OPTIONS: -Dinstalled-tests=true -Dpytest=enabled -Db_sanitize=${{ matrix.sanitizer }}
- name: Run xdg-desktop-portal tests
run: timeout --signal=KILL -v ${TESTS_TIMEOUT}m meson test -C _build
- name: Install xdg-desktop-portal
run: meson install -C _build
- name: Run xdg-desktop-portal installed-tests
run: |
test -n "$(gnome-desktop-testing-runner -l xdg-desktop-portal)"
gnome-desktop-testing-runner --report-directory installed-test-logs/ \
-t $((TESTS_TIMEOUT * 60)) xdg-desktop-portal
- name: Create dist tarball
run: |
ls -la
timeout --signal=KILL -v ${TESTS_TIMEOUT}m meson dist -C _build
- name: Upload test logs
uses: actions/upload-artifact@v3
if: success() || failure()
with:
name: test logs
path: |
tests/*.log
test-*.log
installed-test-logs/
builddir/meson-logs/testlog.txt