Skip to content

Redirects: Move Installing TYPO3 chapter to TYPO3 Explained #923

Redirects: Move Installing TYPO3 chapter to TYPO3 Explained

Redirects: Move Installing TYPO3 chapter to TYPO3 Explained #923

Workflow file for this run

name: CI
on:
push:
branches:
- master
- develop
paths-ignore:
- 'legacy_hook/**'
pull_request:
paths-ignore:
- 'legacy_hook/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-versions:
- '8.2'
steps:
- uses: actions/checkout@v4
- name: Setup PHP ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
coverage: pcov
- name: Setup Composer cache
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Setup npm cache
id: npm-cache-dir
shell: bash
run: |
echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
- name: Recover Composer caches
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock', '**/composer.json') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Recover npm caches
uses: actions/cache@v4
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies (Composer)
run: composer install --prefer-dist --no-progress --no-interaction --ansi
env:
COMPOSER_AUTH: '{
"http-basic": {
"repo.packagist.com": {
"username": "token",
"password": "${{ secrets.PACKAGIST_AUTH_TOKEN }}"
}
},
"github-oauth": {
"github.com": "${{ secrets.ACTIONS_TOKEN }}"
}
}'
- name: PHP CGL
run: composer t3g:cgl
- name: phpstan
run: composer t3g:phpstan
- name: Install dependencies (npm)
run: npm ci
- name: Build frontend artifacts
run: npm run build
- name: Build is clean
run: |
git status
git status | grep -q "nothing to commit, working tree clean"
- name: Tests
run: composer t3g:test:php:cover
env:
COMPOSER_PROCESS_TIMEOUT: 2400
- name: Upload coverage results to Coveralls
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
composer global require php-coveralls/php-coveralls --no-progress --no-interaction --ansi
/home/runner/.composer/vendor/bin/php-coveralls --coverage_clover=var/phpunit/coverage.xml -vvv --json_path=var/log/coveralls-upload.json
continue-on-error: true
deployment:
name: 'Deployment'
needs: build
if: (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop') && github.event_name != 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Setup SSH Key
env:
SSH_AUTH_SOCK: /tmp/ssh-auth.sock
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_rsa
chmod 0600 ~/.ssh/deploy_rsa
ssh-keygen -p -P "${{ secrets.SSH_PASSPHRASE }}" -N "" -f ~/.ssh/deploy_rsa
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
ssh-add ~/.ssh/deploy_rsa
- uses: actions/checkout@v4
- name: Setup PHP ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
- name: Setup Composer cache
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Setup npm cache
id: npm-cache-dir
shell: bash
run: |
echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
- name: Recover Composer caches
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock', '**/composer.json') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Recover npm caches
uses: actions/cache@v4
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Magallanes
run: |
composer global require "andres-montanez/magallanes" --no-progress
/home/runner/.composer/vendor/bin/mage version
mkdir -p ./.mage/logs
- name: Get Environment
id: environment
run: |
echo "target=$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')" >> $GITHUB_OUTPUT
- name: Deployment
env:
SSH_AUTH_SOCK: /tmp/ssh-auth.sock
COMPOSER_AUTH: '{
"http-basic": {
"repo.packagist.com": {
"username": "token",
"password": "${{ secrets.PACKAGIST_AUTH_TOKEN }}"
}
},
"github-oauth": {
"github.com": "${{ secrets.ACTIONS_TOKEN }}"
}
}'
run: |
/home/runner/.composer/vendor/bin/mage deploy ${{ steps.environment.outputs.target }} -vvv
- name: Archive Logs
uses: actions/upload-artifact@v4
if: always()
with:
name: logs
path: .mage/logs
- name: Echo logs
run: find .mage/logs/ -type f -exec cat {} +
if: always()
- name: Create Sentry release
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: typo3
SENTRY_PROJECT: intercept
run: |
# Install Sentry CLI
curl -sL https://sentry.io/get-cli/ | bash
# Create new Sentry release
export SENTRY_RELEASE=$(sentry-cli releases propose-version)
sentry-cli --url https://sentry.typo3.com releases new -p $SENTRY_PROJECT $SENTRY_RELEASE
sentry-cli --url https://sentry.typo3.com releases set-commits --auto $SENTRY_RELEASE
sentry-cli --url https://sentry.typo3.com releases finalize $SENTRY_RELEASE
# Create new deploy for this Sentry release
sentry-cli --url https://sentry.typo3.com releases deploys $SENTRY_RELEASE new -e ${{ steps.environment.outputs.target }}