name: CI on: push: branches: [master] pull_request: branches: [master] concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: tests: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - flavor: fedora buildsystem: meson tests: unit omemo: signal script: ./scripts/build-configuration-matrix.sh omemo_env: libsignal - flavor: ubuntu buildsystem: meson tests: unit omemo: signal script: ./scripts/build-configuration-matrix.sh omemo_env: libsignal - flavor: debian buildsystem: meson tests: unit omemo: libomemo script: ./scripts/build-configuration-matrix.sh omemo_env: libomemo-c name: ${{ matrix.flavor }} | ${{ matrix.buildsystem }} | ${{ matrix.tests }} | ${{ matrix.omemo }} steps: - uses: actions/checkout@v2 - name: Run tests env: OMEMO_BACKEND: ${{ matrix.omemo_env }} run: | docker build -f ci/Dockerfile.${{ matrix.flavor }} -t profanity . docker run ${OMEMO_BACKEND:+ -e OMEMO_BACKEND} profanity ${{ matrix.script }} macos-homebrew: runs-on: macos-latest name: macos | meson | unit | libomemo env: HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALL_CLEANUP: 1 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 steps: - name: Set up Homebrew uses: Homebrew/actions/setup-homebrew@main - uses: actions/checkout@v4 - name: Install dependencies run: | brew install \ cmocka \ gettext \ glib \ gpgme \ gtk+3 \ libomemo-c \ libotr \ libstrophe \ libxscrnsaver \ meson \ ninja \ pkgconf \ python@3.14 \ qrencode \ readline \ sqlite \ terminal-notifier - name: Run build matrix and unit tests env: OMEMO_BACKEND: libomemo-c shell: bash run: | BREW="$(command -v brew)" ./scripts/build-configuration-matrix.sh meson