Fix error in Extension:TimedMediaHandler (needs LocalRepo.scriptDirUrl) #220
This file contains 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: JSON linter + luacheck | |
on: [push, pull_request, workflow_dispatch] | |
env: | |
DBTYPE: mysql | |
DBUSER: root | |
jobs: | |
# PHP linters: phpcs, parallel-lint, etc. | |
linter: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.1' | |
tools: composer | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.composer/cache | |
key: buildcache-linter | |
- run: sudo apt-get install -y composer && composer install | |
- run: composer test | |
# Phan (PHP static analyzer) | |
phan: | |
runs-on: ubuntu-22.04 | |
env: | |
branch: REL1_43 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.1' | |
extensions: ast | |
tools: composer | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.composer/cache | |
buildcache | |
key: buildcache-phan | |
- uses: edwardspec/github-action-build-mediawiki@v1 | |
with: | |
branch: ${{ env.branch }} | |
noinstall: 1 | |
- name: Install dependencies | |
run: | | |
rsync -a --exclude buildcache --exclude mediawiki --exclude .git . mediawiki/extensions/AWS/ | |
cd mediawiki/extensions/AWS | |
composer install | |
- name: RUN -- phan | |
run: cd mediawiki/extensions/AWS && ./vendor/bin/phan --analyze-twice | |
# PHPUnit testsuite + Moto (mock server that emulates S3 API). | |
phpunit-mock: | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [8.1] | |
branch: [REL1_39, REL1_40, REL1_41, REL1_42, REL1_43] | |
env: | |
USE_MOCK: 1 | |
branch: ${{ matrix.branch }} | |
runs-on: ubuntu-22.04 | |
services: | |
memcached: | |
image: memcached:latest | |
ports: | |
- 11211:11211 | |
options: --health-cmd "timeout 5 bash -c 'cat < /dev/null > /dev/tcp/127.0.0.1/11211'" --health-interval 10s --health-timeout 5s --health-retries 5 | |
mariadb: | |
image: mariadb:10 | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: 1 | |
ports: | |
- 3306:3306 | |
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
buildcache | |
key: buildcache-${{ env.branch }}-${{ hashFiles('**/no/files/need/to/invalidate/cache/for/now') }} | |
- name: Install and run Moto (S3 mock server) | |
run: | | |
sudo apt-get install -y python3-pip netcat | |
pip3 install pyOpenSSL --upgrade | |
pip3 install --user "moto[server]" "moto[s3]" && ( ~/.local/bin/moto_server -p 3000 2>~/moto.log & ) | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: mbstring, intl, opcache, mysqli | |
tools: composer | |
- name: (debug) Print "php -i" | |
run: php -i | |
- uses: edwardspec/github-action-build-mediawiki@v1 | |
with: | |
branch: ${{ env.branch }} | |
extraLocalSettings: tests/travis/AWSSettings.php | |
- name: Finalize the installation of MediaWiki | |
run: | | |
rsync -a --exclude buildcache --exclude mediawiki --exclude .git . mediawiki/extensions/AWS/ | |
cd mediawiki | |
cp extensions/AWS/tests/travis/composer.local.json . && composer update | |
echo '{{CURRENTVERSION}}' | php maintenance/parse.php | |
- name: Wait for Moto server to start accepting connections | |
run: | | |
cat ~/moto.log | |
( while ! nc -z 127.0.0.1 3000; do sleep 1; done ) | |
- name: RUN -- phpunit (TestsWithNoNeedForAwsCredentials) | |
run: | | |
cd mediawiki | |
php tests/phpunit/phpunit.php --group TestsWithNoNeedForAwsCredentials extensions/AWS/tests/phpunit/ | |
- name: RUN -- phpunit AmazonS3FileBackendTest.php | |
# We run the test twice: one for container path "NameOfBucket" (public zone), | |
# one for container path "NameOfBucket/AdditionalPrefix" (e.g. within the "thumb" zone), | |
# to ensure that paths are properly calculated in both cases. | |
run: | | |
cd mediawiki | |
# FIXME: surely there is a better way to do this, like moving this into a script or custom action. | |
fails=0; | |
for WITH_CACHE in 0 1; do | |
for zone in public thumb; do | |
export BUCKET="${AWS_BUCKET_PREFIX}-$(LC_ALL=C date +'%s')-${{ job.container.id }}-$zone-cache$WITH_CACHE" | |
AWS_S3_TEST_ZONE="$zone" WITH_CACHE="$WITH_CACHE" php tests/phpunit/phpunit.php extensions/AWS/tests/phpunit/AmazonS3FileBackendTest.php || ((fails++)) | |
rm -rf -v "~/aws.localcache" | |
done | |
done; | |
[[ $fails -eq 0 ]] | |
# |