name: Bleeding-edge CI on: workflow_dispatch: schedule: # Every day at 03:05 UTC # https://crontab.guru/#05_03_*_*_* - cron: '05 03 * * *' jobs: tests: if: "github.repository == 'qutebrowser/qutebrowser'" runs-on: ubuntu-24.04 timeout-minutes: 45 strategy: fail-fast: false matrix: include: - testenv: bleeding image: "archlinux-webengine-unstable" container: image: "qutebrowser/ci:${{ matrix.image }}" env: FORCE_COLOR: "1" PY_COLORS: "1" DOCKER: "${{ matrix.image }}" CI: true TMPDIR: "${{ runner.temp }}" volumes: # Hardcoded because we can't use ${{ runner.temp }} here apparently. - /home/runner/work/_temp/:/home/runner/work/_temp/ options: --privileged --tty steps: - uses: actions/checkout@v5 with: persist-credentials: false - name: Set up problem matchers run: "python scripts/dev/ci/problemmatchers.py py3 ${{ runner.temp }}" - name: Upgrade 3rd party assets run: "tox exec -e ${{ matrix.testenv }} -- python scripts/dev/update_3rdparty.py --gh-token ${{ secrets.GITHUB_TOKEN }} --modern-pdfjs" - name: Run tox run: dbus-run-session tox -e ${{ matrix.testenv }} - name: Gather info id: info run: | echo "date=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT" echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT" shell: bash if: failure() - name: Upload screenshots uses: actions/upload-artifact@v5 with: name: "end2end-screenshots-${{ steps.info.outputs.date }}-${{ steps.info.outputs.sha_short }}-${{ matrix.image }}" path: | ${{ runner.temp }}/pytest-of-user/pytest-current/pytest-screenshots/*.png if-no-files-found: ignore if: failure() irc: timeout-minutes: 2 continue-on-error: true runs-on: ubuntu-24.04 needs: [tests] if: "always() && github.repository == 'qutebrowser/qutebrowser'" steps: - name: Send success IRC notification uses: Gottox/irc-message-action@v2 if: "needs.tests.result == 'success'" with: server: irc.libera.chat channel: '#qutebrowser-bots' nickname: qutebrowser-bot message: "[${{ github.workflow }}] \u00033Success:\u0003 ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} (@${{ github.actor }})" - name: Send non-success IRC notification uses: Gottox/irc-message-action@v2 if: "needs.tests.result != 'success'" with: server: irc.libera.chat channel: '#qutebrowser-bots' nickname: qutebrowser-bot message: "[${{ github.workflow }}] \u00034FAIL:\u0003 ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} (@${{ github.actor }})\n tests: ${{ needs.tests.result }}"