Skip to content

Fix LeafletEditor.remove() crash when no edits were made #809

Fix LeafletEditor.remove() crash when no edits were made

Fix LeafletEditor.remove() crash when no edits were made #809

Workflow file for this run

name: CI
on:
push:
branches: [ "*" ]
pull_request:
branches: [ "*" ]
jobs:
test:
name: "PHPUnit: MW ${{ matrix.mw }}, PHP ${{ matrix.php }}"
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
include:
- mw: 'REL1_43'
php: 8.3
experimental: false
- mw: 'REL1_44'
php: 8.3
experimental: false
- mw: 'REL1_45'
php: 8.3
experimental: false
runs-on: ubuntu-latest
defaults:
run:
working-directory: mediawiki
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 }}-v22
- 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 }} Maps
- uses: actions/checkout@v4
with:
path: mediawiki/extensions/Maps
- name: Composer allow-plugins
run: composer config --no-plugins allow-plugins.composer/installers true
- run: composer update
- name: Run PHPUnit
run: php tests/phpunit/phpunit.php -c extensions/Maps
- name: Run PHPUnit with code coverage
run: |
php tests/phpunit/phpunit.php -c extensions/Maps --coverage-clover coverage.xml
bash <(curl -s https://codecov.io/bash)
# Psalm:
# name: "Psalm"
#
# runs-on: ubuntu-latest
#
# defaults:
# run:
# working-directory: mediawiki
#
# steps:
# - name: Setup PHP
# uses: shivammathur/setup-php@v2
# with:
# php-version: 8.0
# extensions: mbstring
# tools: composer, cs2pr
#
# - name: Cache MediaWiki
# id: cache-mediawiki
# uses: actions/cache@v2
# with:
# path: |
# mediawiki
# mediawiki/extensions/
# mediawiki/vendor/
# key: mw_psalm
#
# - name: Cache Composer cache
# uses: actions/cache@v2
# with:
# path: ~/.composer/cache
# key: composer_static_analysis
#
# - uses: actions/checkout@v2
# with:
# path: EarlyCopy
#
# - name: Install MediaWiki
# if: steps.cache-mediawiki.outputs.cache-hit != 'true'
# working-directory: ~
# run: bash EarlyCopy/.github/workflows/installMediaWiki.sh REL1_37 Maps
#
# - uses: actions/checkout@v2
# with:
# path: mediawiki/extensions/Maps
#
# - run: composer update
#
# - name: Composer install
# run: cd extensions/Maps && composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader
#
# - name: Psalm
# run: cd extensions/Maps && php vendor/bin/psalm --config=psalm.xml --shepherd --stats
qunit:
name: "QUnit"
runs-on: ubuntu-latest
defaults:
run:
working-directory: mediawiki
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
extensions: mbstring, intl
tools: composer
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Clone MediaWiki
run: git clone --depth 1 -b REL1_43 https://github.com/wikimedia/mediawiki.git mediawiki
working-directory: ~
- uses: actions/checkout@v4
with:
path: mediawiki/extensions/Maps
- name: Composer allow-plugins
run: composer config --no-plugins allow-plugins.composer/installers true
- name: Configure Composer merge for Maps
run: |
cat <<'EOJSON' > composer.local.json
{
"extra": {
"merge-plugin": {
"merge-dev": true,
"include": [
"extensions/Maps/composer.json"
]
}
}
}
EOJSON
- run: composer update
- name: Install MediaWiki
run: php maintenance/install.php --dbtype sqlite --dbuser root --dbname mw --dbpath "$(pwd)" --scriptpath="/w" --pass AdminPassword WikiName AdminUser
- name: Configure MediaWiki
run: |
echo 'error_reporting(E_ALL | E_STRICT);' >> LocalSettings.php
echo '$wgShowExceptionDetails = true;' >> LocalSettings.php
echo 'wfLoadExtension( "Maps" );' >> LocalSettings.php
echo '$wgEnableJavaScriptTest = true;' >> LocalSettings.php
- name: Install npm dependencies
run: npm install
- name: Run QUnit tests
env:
MW_SERVER: http://127.0.0.1:8080
MW_SCRIPT_PATH: /w
FORCE_COLOR: 1
run: |
ln -s . w
nohup php -S 0.0.0.0:8080 -t . > /tmp/php-server.log 2>&1 &
sleep 2
curl -sf http://127.0.0.1:8080/w/index.php/Special:BlankPage > /dev/null || (echo "Server failed:" && cat /tmp/php-server.log && exit 1)
npx grunt qunit --qunit-component=Maps
PHPStan:
name: "PHPStan"
runs-on: ubuntu-latest
defaults:
run:
working-directory: mediawiki
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
extensions: mbstring
tools: composer, cs2pr
- name: Cache MediaWiki
id: cache-mediawiki
uses: actions/cache@v4
with:
path: |
mediawiki
!mediawiki/extensions/
!mediawiki/vendor/
key: mw_phpstan-v2
- name: Cache Composer cache
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: composer_phpstan
- 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 REL1_43 Maps
- uses: actions/checkout@v4
with:
path: mediawiki/extensions/Maps
- name: Composer allow-plugins
run: composer config --no-plugins allow-plugins.composer/installers true
- run: composer update
- name: Composer install
run: |
cd extensions/Maps
composer config --no-plugins allow-plugins.composer/installers true
composer install --no-progress --no-interaction --prefer-dist --optimize-autoloader
- name: PHPStan
run: cd extensions/Maps && php vendor/bin/phpstan analyse --error-format=checkstyle --no-progress | cs2pr
code-style:
name: "Code style"
runs-on: ubuntu-latest
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
extensions: mbstring, intl, php-ast
tools: composer
- name: Cache Composer cache
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: composer_code_style
- uses: actions/checkout@v4
- 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: make phpcs