From de6a2f5d097b5df6caa79dd8323a67d04beb53cf Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Sun, 5 May 2024 05:02:52 -0400 Subject: [PATCH] Use the canonical MW_INSTALL_PATH (#692) * Use the canonical MW_INSTALL_PATH * Update MW_INSTALL_PATH to fallback if not available Fixes #832 --- .github/workflows/main.yml | 96 ++++++++++++++++++++++++++++++++++++++ composer.json | 4 +- 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..720a48947 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,96 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-20.04 + continue-on-error: ${{ matrix.experimental }} + + strategy: + matrix: + include: + - mediawiki_version: '1.35' + semantic_mediawiki_version: 3.2.3 + mermaid_version: 3.0.1 + coverage: true + experimental: false + - mediawiki_version: '1.36' + semantic_mediawiki_version: dev-master + mermaid_version: dev-master + coverage: false + experimental: true + + container: + image: gesinn/docker-mediawiki:${{ matrix.mediawiki_version }} + + env: + EXT_NAME: SemanticResultFormats + MW_INSTALL_PATH: /var/www/html + MW_DB_PATH: /var/www/data + MW_EXT_PATH: /var/www/html/extensions + + steps: + - name: Install SemanticMediaWiki + run: | + COMPOSER=composer.local.json composer require --update-with-dependencies --working-dir ${{ env.MW_INSTALL_PATH }} mediawiki/semantic-media-wiki ${{ matrix.semantic_mediawiki_version }} + composer update --working-dir ${{ env.MW_INSTALL_PATH }} + echo "wfLoadExtension( 'SemanticMediaWiki' );" >> ${{ env.MW_INSTALL_PATH }}/LocalSettings.php + echo "enableSemantics( 'localhost' );" >> ${{ env.MW_INSTALL_PATH }}/LocalSettings.php + tail -n5 ${{ env.MW_INSTALL_PATH }}/LocalSettings.php + php ${{ env.MW_INSTALL_PATH }}/maintenance/update.php --skip-external-dependencies --quick + + - name: Install Mermaid + run: | + COMPOSER=composer.local.json composer require --update-with-dependencies --working-dir ${{ env.MW_INSTALL_PATH }} mediawiki/mermaid ${{ matrix.mermaid_version }} + composer update --working-dir ${{ env.MW_INSTALL_PATH }} + echo "wfLoadExtension( 'Mermaid' );" >> ${{ env.MW_INSTALL_PATH }}/LocalSettings.php + tail -n5 ${{ env.MW_INSTALL_PATH }}/LocalSettings.php + + - name: Checkout Extension + uses: actions/checkout@v2 + with: + path: ${{ env.EXT_NAME }} + + # Setting actions/checkout@v2 path to env.MW_EXT_PATH fails with "Repository path '/var/www/html/extensions' is not under ..." + # See also open PR https://github.com/actions/checkout/pull/388 + - name: Move Extension + run: | + mkdir -p ${{ env.MW_EXT_PATH }} + mv ${{ env.EXT_NAME }} ${{ env.MW_EXT_PATH }} + + - name: Install SemanticResultFormats + run: | + COMPOSER=composer.local.json composer require --no-update --working-dir ${{ env.MW_INSTALL_PATH }} mediawiki/semantic-result-formats @dev + COMPOSER=composer.local.json composer config repositories.semantic-result-formats '{"type": "path", "url": "extensions/SemanticResultFormats"}' --working-dir ${{ env.MW_INSTALL_PATH }} + composer update --working-dir ${{ env.MW_INSTALL_PATH }} + echo "wfLoadExtension( '${{ env.EXT_NAME }}' );" >> ${{ env.MW_INSTALL_PATH }}/LocalSettings.php + tail -n5 ${{ env.MW_INSTALL_PATH }}/LocalSettings.php + php ${{ env.MW_INSTALL_PATH }}/maintenance/update.php --quick + + - name: Run Tests + run: > + php ${{ env.MW_INSTALL_PATH }}/tests/phpunit/phpunit.php + --configuration ${{ env.MW_EXT_PATH }}/${{ env.EXT_NAME }} + --testdox + if: matrix.coverage == false + + - name: Run Tests With Coverage + run: > + php ${{ env.MW_INSTALL_PATH }}/tests/phpunit/phpunit.php + --configuration ${{ env.MW_EXT_PATH }}/${{ env.EXT_NAME }} + --testdox + --coverage-clover ${{ env.MW_INSTALL_PATH }}/docs/coverage.xml + if: matrix.coverage == true + + - name: Upload code coverage + uses: codecov/codecov-action@v2 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ${{ env.MW_INSTALL_PATH }}/docs/coverage.xml + if: matrix.coverage == true diff --git a/composer.json b/composer.json index 34164c937..d688dd181 100644 --- a/composer.json +++ b/composer.json @@ -88,8 +88,8 @@ "test-coverage": [ "@phpunit-coverage" ], - "phpunit": "php ../../tests/phpunit/phpunit.php -c phpunit.xml.dist", - "phpunit-coverage": "php ../../tests/phpunit/phpunit.php -c phpunit.xml.dist --testdox --coverage-text --coverage-html coverage/php --coverage-clover coverage/php/coverage.xml", + "phpunit": "php ${MW_INSTALL_PATH:-../..}/tests/phpunit/phpunit.php -c phpunit.xml.dist", + "phpunit-coverage": "php ${MW_INSTALL_PATH:-../..}/tests/phpunit/phpunit.php -c phpunit.xml.dist --testdox --coverage-text --coverage-html coverage/php --coverage-clover coverage/php/coverage.xml", "integration": "composer phpunit -- --testsuite=semantic-result-formats-integration", "lint": [ "@parallel-lint",