CI: Add TYPO3 v13 to test matrix #1503
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: Acceptance Tests | |
on: | |
pull_request: | |
branches: | |
- "**" | |
push: | |
branches: | |
- "main" | |
jobs: | |
Acceptance: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
typo3: | |
- ^12.4 | |
php: | |
- '8.1' | |
- '8.2' | |
- '8.3' | |
steps: | |
- name: Get branch name (merge) | |
if: github.event_name != 'pull_request' | |
shell: bash | |
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV | |
- name: Get branch name (pull request) | |
if: github.event_name == 'pull_request' | |
shell: bash | |
run: echo "BRANCH_NAME=$(echo ${GITHUB_HEAD_REF})" >> $GITHUB_ENV | |
- uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
tools: composer:v2 | |
coverage: none | |
- name: Version information | |
run: | | |
php -v | |
composer --version | |
- uses: actions/checkout@v4 | |
- uses: ddev/github-action-setup-ddev@v1 | |
with: | |
ddevDir: ".devbox" | |
- name: CodeCeption | |
run: | | |
export FROM_PATH='../../' | |
export TO_PATH=$(echo $GITHUB_WORKSPACE) | |
cd .devbox | |
sed -i 's/php_version: "8.1"/php_version: "${{ matrix.php }}"/g' .ddev/config.yaml | |
sed -i "s|$FROM_PATH|$TO_PATH|g" .ddev/docker-compose.volume.yaml | |
ddev restart | |
rm -rf vendor composer.lock | |
ddev composer require typo3/cms-core=${{ matrix.typo3 }} tomasnorre/crawler=dev-$BRANCH_NAME | |
ddev exec bin/typo3 backend:lock | |
ddev exec bin/typo3 extension:setup | |
ddev exec bin/typo3 cache:flush | |
ddev exec bin/typo3 cache:warmup | |
ddev exec bin/typo3 upgrade:run | |
ddev exec bin/typo3 backend:unlock | |
cd .. # Going back to "root" directory | |
rm -rf .Build composer.lock | |
composer require typo3/cms-core=${{ matrix.typo3 }} | |
wget https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh | |
chmod +x wait-for-it.sh | |
docker ps | |
./wait-for-it.sh -t 60 127.0.0.1:80 | |
./wait-for-it.sh -t 60 127.0.0.1:443 | |
./wait-for-it.sh -t 60 localhost:4444 | |
php .Build/bin/codecept run | |
- name: Database Dump | |
if: ${{ failure() }} | |
run: | | |
cd .devbox | |
ddev export-db --gzip=false --file=../Tests/Acceptance/_output/db.sql | |
- name: Upload Codeception output | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: codeception-results | |
path: Tests/Acceptance/_output/ | |
- uses: shallwefootball/s3-upload-action@master | |
if: ${{ failure() }} | |
with: | |
aws_key_id: ${{ secrets.AWS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}} | |
aws_bucket: ${{ secrets.AWS_BUCKET }} | |
source_dir: 'Tests/Acceptance/_output/' | |
destination_dir: '${{ matrix.typo3 }}-${{ matrix.php }}' | |
# Non Composer is commented out for now, till I find a better way to run them, the are failing more than not, so they | |
# don't bring much value atm as they are often ignored. I know not good, but none the less the case. | |
# NonComposer: | |
# runs-on: self-hosted | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# typo3: | |
# - 'v11' | |
# - 'v11p80' | |
# | |
# steps: | |
# - uses: shivammathur/setup-php@v2 | |
# with: | |
# php-version: '8.1' | |
# tools: composer:v2 | |
# coverage: none | |
# | |
# - name: Version information | |
# run: | | |
# php -v | |
# composer --version | |
# | |
# - uses: actions/checkout@v4 | |
# - run: | | |
# cd .devbox/.ddev | |
# docker-compose -f docker-compose.selenium.yaml up -d | |
# cd ../.. # Going back to "root" directory | |
# rm -rf .Build composer.lock | |
# composer require nimut/typo3-complete:^11.5 | |
# wget https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh | |
# chmod +x wait-for-it.sh | |
# docker ps | |
# ./wait-for-it.sh -t 60 localhost:4444 | |
# php .Build/bin/codecept run --env=${{ matrix.typo3 }}-non-composer | |
# | |
# - name: Upload Codeception output | |
# if: ${{ failure() }} | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: codeception-results | |
# path: Tests/Acceptance/_output/ | |
# | |
# - uses: shallwefootball/s3-upload-action@master | |
# if: ${{ failure() }} | |
# with: | |
# aws_key_id: ${{ secrets.AWS_KEY_ID }} | |
# aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}} | |
# aws_bucket: ${{ secrets.AWS_BUCKET }} | |
# source_dir: 'Tests/Acceptance/_output/' | |
# destination_dir: '${{ matrix.typo3 }}-non-composer' | |
# |