Skip to content

Update CI and bump minimum MW requirement to 1.39 #287

Update CI and bump minimum MW requirement to 1.39

Update CI and bump minimum MW requirement to 1.39 #287

Workflow file for this run

name: CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ "*" ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
test:
name: "PHPUnit: MW ${{ matrix.mw }}, PHP ${{ matrix.php }}"
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
include:
- mw: 'REL1_39'
php: 7.4
experimental: false
- mw: 'REL1_40'
php: 8.0
experimental: false
- mw: 'REL1_41'
php: 8.1
experimental: false
- mw: 'REL1_42'
php: 8.2
experimental: false
- mw: 'REL1_43'
php: 8.3
experimental: false
- mw: 'master'
php: 8.4
experimental: true
runs-on: ubuntu-latest
defaults:
run:
working-directory: mediawiki
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: mbstring, intl
tools: composer
- name: Cache MediaWiki
id: cache-mediawiki
uses: actions/cache@v4
with:
path: |
mediawiki
!mediawiki/extensions/
!mediawiki/vendor/
key: mw_${{ matrix.mw }}-php${{ matrix.php }}-v21
- name: Cache Composer cache
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: composer-php${{ matrix.php }}
- uses: actions/checkout@v4
with:
path: EarlyCopy
- name: Install MediaWiki
if: steps.cache-mediawiki.outputs.cache-hit != 'true'
working-directory: ~
run: bash EarlyCopy/.github/workflows/installMediaWiki.sh ${{ matrix.mw }} Network
- uses: actions/checkout@v4
with:
path: mediawiki/extensions/Network
- name: Composer update
run: composer update
- name: Run PHPUnit
run: php tests/phpunit/phpunit.php -c extensions/Network/phpunit.xml.dist
static-analysis:
name: "Static Analysis: MW ${{ matrix.mw }}, PHP ${{ matrix.php }}"
strategy:
matrix:
include:
- mw: 'REL1_43'
php: '8.3'
runs-on: ubuntu-latest
defaults:
run:
working-directory: mediawiki/extensions/Network
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: mbstring
tools: composer, cs2pr
- name: Cache MediaWiki
id: cache-mediawiki
uses: actions/cache@v4
with:
path: |
mediawiki
!mediawiki/extensions/
!mediawiki/vendor/
key: mediawiki-cache
- name: Cache Composer cache
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: composer_static_analysis
- uses: actions/checkout@v4
with:
path: EarlyCopy
- name: Install MediaWiki
if: steps.cache-mediawiki.outputs.cache-hit != 'true'
working-directory: ~
run: bash EarlyCopy/.github/workflows/installMediaWiki.sh ${{ matrix.mw }} Network
- uses: actions/checkout@v4
with:
path: mediawiki/extensions/Network
- name: Composer install
run: composer install --no-progress --no-suggest --no-interaction --prefer-dist --optimize-autoloader
- name: PHPStan
run: php vendor/bin/phpstan analyse --error-format=checkstyle --no-progress | cs2pr
- name: Psalm
run: php vendor/bin/psalm
code-style:
name: "Code style: MW ${{ matrix.mw }}, PHP ${{ matrix.php }}"
strategy:
matrix:
include:
- mw: 'REL1_43'
php: '8.3'
runs-on: ubuntu-latest
defaults:
run:
working-directory: mediawiki/extensions/Network
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: mbstring, intl, php-ast
tools: composer
- name: Cache MediaWiki
id: cache-mediawiki
uses: actions/cache@v4
with:
path: |
mediawiki
!mediawiki/extensions/
!mediawiki/vendor/
key: mw_static_analysis
- name: Cache Composer cache
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: composer_static_analysis
- uses: actions/checkout@v4
with:
path: EarlyCopy
- name: Install MediaWiki
if: steps.cache-mediawiki.outputs.cache-hit != 'true'
working-directory: ~
run: bash EarlyCopy/.github/workflows/installMediaWiki.sh ${{ matrix.mw }} Network
- uses: actions/checkout@v4
with:
path: mediawiki/extensions/Network
- name: Composer allow-plugins
run: composer config --no-plugins allow-plugins.composer/installers true
- name: Composer install
run: composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader
- run: vendor/bin/phpcs -p -s