Redirects: Move Installing TYPO3 chapter to TYPO3 Explained #923
Workflow file for this run
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: 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 }} |