ci: Expand the MediaWiki version matrix to REL1_43..master (#222) #684
This file contains hidden or 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: Quibble and Phan | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| mediawiki-version: | |
| - REL1_43 | |
| - REL1_44 | |
| - REL1_45 | |
| - REL1_46 | |
| - master | |
| stage: | |
| - phan | |
| - coverage | |
| - phpunit-unit | |
| - phpunit | |
| - phpunit-standalone | |
| - npm-test | |
| - composer-test | |
| - selenium | |
| # - qunit | |
| # - api-testing | |
| exclude: | |
| # composer-test (parallel-lint, phpcs, minus-x) is MediaWiki-version | |
| # independent, so run it on a single version (REL1_43). This avoids the | |
| # same phpcs annotations being emitted once per version and saves CI time. | |
| - mediawiki-version: REL1_44 | |
| stage: composer-test | |
| - mediawiki-version: REL1_45 | |
| stage: composer-test | |
| - mediawiki-version: REL1_46 | |
| stage: composer-test | |
| - mediawiki-version: master | |
| stage: composer-test | |
| # coverage tooling (generatePHPUnitConfig.php) lives only on master, so | |
| # the action skips it on other branches; don't spin up a no-op job. | |
| - mediawiki-version: REL1_43 | |
| stage: coverage | |
| - mediawiki-version: REL1_44 | |
| stage: coverage | |
| - mediawiki-version: REL1_45 | |
| stage: coverage | |
| - mediawiki-version: REL1_46 | |
| stage: coverage | |
| runs-on: ubuntu-latest | |
| # contents: read to clone; id-token: write so the Codecov upload can | |
| # authenticate via OIDC instead of an upload token. | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: femiwiki/quibble-action@6cdce5833f7d82f9e003b0077c8bc5a7572343cf # main | |
| id: quibble | |
| with: | |
| stage: ${{ matrix.stage }} | |
| mediawiki-version: ${{ matrix.mediawiki-version }} | |
| # Wikibase is dropped from the selenium stage only. Quibble's selenium | |
| # stage runs `npm run selenium-test` for every dependency that has it, | |
| # and on REL1_43 Wikibase's wdio config globs in the wikibase-termbox | |
| # specs, which need MinervaNeue + MobileFrontend to render their mobile | |
| # UI and otherwise time out. Wikimedia's own downstream-extension jobs | |
| # likewise do not run Wikibase's selenium. Wikibase stays for the other | |
| # stages (phan/phpunit need it). | |
| dependencies: ${{ matrix.stage == 'selenium' && 'CategoryTree SpamBlacklist' || 'CategoryTree SpamBlacklist Wikibase' }} | |
| - name: Upload coverage to Codecov | |
| if: matrix.stage == 'coverage' | |
| uses: codecov/codecov-action@v7 | |
| with: | |
| use_oidc: true | |
| directory: ${{ steps.quibble.outputs.coverage }} |