diff options
author | toofar <toofar@spalge.com> | 2024-05-11 17:02:45 +1200 |
---|---|---|
committer | toofar <toofar@spalge.com> | 2024-05-11 17:02:45 +1200 |
commit | b44c783813d29f7bfa22319e724511f81cf19bb9 (patch) | |
tree | b1a73f37c7ae2b1a9c3c0b9b84980194bf7e81d8 | |
parent | 8b6e1cdc0d892624a8f4cf411e28c118e700af58 (diff) | |
download | qutebrowser-windows-ipc-debugging-compiler.tar.gz qutebrowser-windows-ipc-debugging-compiler.zip |
restore ciwindows-ipc-debugging-compiler
-rw-r--r-- | .github/workflows/ci.yml | 204 |
1 files changed, 202 insertions, 2 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1fa06dcb4..f62d2bdc5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,115 @@ env: MYPY_FORCE_TERMINAL_WIDTH: "180" jobs: + linters: + if: "!contains(github.event.head_commit.message, '[ci skip]')" + timeout-minutes: 10 + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + include: + - testenv: pylint + - testenv: flake8 + - testenv: mypy-pyqt6 + - testenv: mypy-pyqt5 + - testenv: docs + - testenv: vulture + - testenv: misc + - testenv: pyroma + - testenv: check-manifest + - testenv: eslint + - testenv: shellcheck + args: "-f gcc" # For problem matchers + - testenv: yamllint + - testenv: actionlint + - testenv: package + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + - uses: actions/cache@v4 + with: + path: | + .mypy_cache + .tox + ~/.cache/pip + key: "${{ matrix.testenv }}-${{ hashFiles('misc/requirements/requirements-*.txt') }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('scripts/dev/pylint_checkers/qute_pylint/*.py') }}" + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + - uses: actions/setup-node@v4 + with: + node-version: '16.x' + if: "matrix.testenv == 'eslint'" + - name: Set up problem matchers + run: "python scripts/dev/ci/problemmatchers.py ${{ matrix.testenv }} ${{ runner.temp }}" + - name: Install dependencies + run: | + [[ ${{ matrix.testenv }} == eslint ]] && npm install -g 'eslint@<9.0.0' + [[ ${{ matrix.testenv }} == docs ]] && sudo apt-get update && sudo apt-get install --no-install-recommends asciidoc libegl1-mesa + [[ ${{ matrix.testenv }} == vulture || ${{ matrix.testenv }} == pylint ]] && sudo apt-get update && sudo apt-get install --no-install-recommends libegl1-mesa + if [[ ${{ matrix.testenv }} == shellcheck ]]; then + scversion="stable" + bindir="$HOME/.local/bin" + mkdir -p "$bindir" + wget -qO- "https://github.com/koalaman/shellcheck/releases/download/$scversion/shellcheck-$scversion.linux.x86_64.tar.xz" | tar -xJv --strip-components 1 -C "$bindir" shellcheck-$scversion/shellcheck + echo "$bindir" >> "$GITHUB_PATH" + fi + if [[ ${{ matrix.testenv }} == actionlint ]]; then + bindir="$HOME/.local/bin" + mkdir -p "$bindir" + wget -q https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash + bash download-actionlint.bash latest "$bindir" + echo "$bindir" >> "$GITHUB_PATH" + fi + python -m pip install -U pip + python -m pip install -U -r misc/requirements/requirements-tox.txt + - name: "Run ${{ matrix.testenv }}" + run: | + if [[ -z "${{ matrix.args }}" ]]; then + dbus-run-session -- tox -e ${{ matrix.testenv }} + else + dbus-run-session -- tox -e ${{ matrix.testenv }} -- ${{ matrix.args }} + fi + + tests-docker: + if: "!contains(github.event.head_commit.message, '[ci skip]')" + timeout-minutes: 45 + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + include: + - testenv: py-qt5 + image: archlinux-webkit + - testenv: py-qt5 + image: archlinux-webengine + - testenv: py-qt5 + image: archlinux-webengine-unstable + - testenv: py + image: archlinux-webengine-qt6 + - testenv: py + image: archlinux-webengine-unstable-qt6 + container: + image: "qutebrowser/ci:${{ matrix.image }}" + env: + DOCKER: "${{ matrix.image }}" + CI: true + PYTEST_ADDOPTS: "--color=yes" + 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@v4 + with: + persist-credentials: false + - name: Set up problem matchers + run: "python scripts/dev/ci/problemmatchers.py tests ${{ runner.temp }}" + - name: Run tox + run: "dbus-run-session -- tox -e ${{ matrix.testenv }}" + tests: if: "!contains(github.event.head_commit.message, '[ci skip]')" timeout-minutes: 45 @@ -19,16 +128,65 @@ jobs: fail-fast: false matrix: include: + ### PyQt 5.15.2 (Python 3.8) + - testenv: py38-pyqt5152 + os: ubuntu-20.04 + python: "3.8" + ### PyQt 5.15 (Python 3.10, with coverage) + # FIXME:qt6 + # - testenv: py310-pyqt515-cov + # os: ubuntu-22.04 + # python: "3.10" + ### PyQt 5.15 (Python 3.11) + - testenv: py311-pyqt515 + os: ubuntu-20.04 + python: "3.11" + ### PyQt 6.2 (Python 3.8) + - testenv: py38-pyqt62 + os: ubuntu-20.04 + python: "3.8" + ### PyQt 6.3 (Python 3.8) + - testenv: py38-pyqt63 + os: ubuntu-20.04 + python: "3.8" + ## PyQt 6.4 (Python 3.9) + - testenv: py39-pyqt64 + os: ubuntu-20.04 + python: "3.9" + ### PyQt 6.5 (Python 3.10) + - testenv: py310-pyqt65 + os: ubuntu-22.04 + python: "3.10" + ### PyQt 6.6 (Python 3.11) + - testenv: py311-pyqt66 + os: ubuntu-22.04 + python: "3.11" + ### PyQt 6.6 (Python 3.12) + - testenv: py312-pyqt66 + os: ubuntu-22.04 + python: "3.12" + ### PyQt 6.7 (Python 3.11) + - testenv: py311-pyqt67 + os: ubuntu-22.04 + python: "3.11" ### PyQt 6.7 (Python 3.12) - testenv: py312-pyqt67 os: ubuntu-22.04 python: "3.12" - args: "tests/end2end/features/" + ### macOS Big Sur + - testenv: py312-pyqt67 + os: macos-11 + python: "3.12" + args: "tests/unit" # Only run unit tests on macOS + ### macOS Monterey + - testenv: py312-pyqt67 + os: macos-12 + python: "3.12" + args: "tests/unit" # Only run unit tests on macOS ### Windows - testenv: py312-pyqt67 os: windows-2019 python: "3.12" - args: "tests/end2end/features/" runs-on: "${{ matrix.os }}" steps: - uses: actions/checkout@v4 @@ -89,3 +247,45 @@ jobs: queries: +security-extended - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 + + irc: + timeout-minutes: 2 + continue-on-error: true + runs-on: ubuntu-22.04 + needs: [linters, tests, tests-docker, codeql] + if: "always() && github.repository_owner == 'qutebrowser'" + steps: + - name: Send success IRC notification + uses: Gottox/irc-message-action@v2 + if: "needs.linters.result == 'success' && needs.tests.result == 'success' && needs.tests-docker.result == 'success' && needs.codeql.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 failure IRC notification + uses: Gottox/irc-message-action@v2 + if: "needs.linters.result == 'failure' || needs.tests.result == 'failure' || needs.tests-docker.result == 'failure' || needs.codeql.result == 'failure'" + 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 + linters: ${{ needs.linters.result }}, tests: ${{ needs.tests.result }}, tests-docker: ${{ needs.tests-docker.result }}, codeql: ${{ needs.codeql.result }}" + - name: Send skipped IRC notification + uses: Gottox/irc-message-action@v2 + if: "needs.linters.result == 'skipped' || needs.tests.result == 'skipped' || needs.tests-docker.result == 'skipped' || needs.codeql.result == 'skipped'" + with: + server: irc.libera.chat + channel: '#qutebrowser-bots' + nickname: qutebrowser-bot + message: "[${{ github.workflow }}] \u00038Skipped:\u0003 ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} (@${{ github.actor }})" + - name: Send cancelled IRC notification + uses: Gottox/irc-message-action@v2 + if: "needs.linters.result == 'cancelled' || needs.tests.result == 'cancelled' || needs.tests-docker.result == 'cancelled' || needs.codeql.result == 'cancelled'" + with: + server: irc.libera.chat + channel: '#qutebrowser-bots' + nickname: qutebrowser-bot + message: "[${{ github.workflow }}] \u000314Cancelled:\u0003 ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} (@${{ github.actor }})\n + linters: ${{ needs.linters.result }}, tests: ${{ needs.tests.result }}, tests-docker: ${{ needs.tests-docker.result }}, codeql: ${{ needs.codeql.result }}" |