Skip to content

[TASK] Use node 20 in ci #1640

[TASK] Use node 20 in ci

[TASK] Use node 20 in ci #1640

Workflow file for this run

name: CI
on:
push:
branches-ignore:
- 'task/**'
- 'bugfix/**'
- 'feature/**'
pull_request:
jobs:
build-php:
name: Build PHP
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 4
matrix:
typo3: ['^12']
php: ['8.1', '8.2']
mysql: ['8.0']
steps:
- id: checkout
name: Checkout Code
uses: actions/checkout@v3
- id: setup_mysql
name: Set up MySQL ${{ matrix.mysql }}
uses: mirromutth/[email protected]
with:
mysql version: ${{ matrix.mysql }}
mysql root password: 'root'
- id: setup_php
name: Set up PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: composer:v2
- name: Composer Cache Vars
id: composer-cache-vars
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
echo "timestamp=$(date +"%s")" >> $GITHUB_OUTPUT
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache-vars.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ matrix.typo3 }}-${{ steps.composer-cache-vars.outputs.timestamp }}
restore-keys: |
${{ runner.os }}-composer-${{ matrix.php }}-${{ matrix.typo3 }}-
${{ runner.os }}-composer-${{ matrix.php }}-
${{ runner.os }}-composer-
- id: install
name: Install
run: |
composer require typo3/cms-core:${{ matrix.typo3 }} --no-progress
git checkout composer.json
- id: lint
name: Lint
if: ${{ always() && steps.install.conclusion == 'success' }}
run: |
composer test:php:lint
- id: cgl
name: CGL
if: ${{ always() && steps.install.conclusion == 'success' }}
run: |
composer cgl:ci
- id: phpstan
name: PHPStan
if: ${{ always() && steps.install.conclusion == 'success' }}
run: |
composer phpstan -- --error-format=github
- id: tests_unit
name: Unit Tests
if: ${{ always() && steps.install.conclusion == 'success' }}
run: |
composer test:php:unit
- id: tests_functional
name: Functional Tests
if: ${{ always() && steps.install.conclusion == 'success' }}
run: |
composer test:php:functional
env:
COMPOSER_PROCESS_TIMEOUT: 1200
typo3DatabaseHost: 127.0.0.1
typo3DatabaseName: t3func
typo3DatabasePassword: root
typo3DatabaseUsername: root
build-frontend:
name: Build Frontend
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 20
- name: Install
run: |
cd Build
npm ci
- name: Build
run: |
cd Build
npm run build
- name: Status
run: |
git status
git status | grep -q "nothing to commit, working tree clean"
deployment:
name: Deployment
runs-on: ubuntu-latest
environment:
name: production
url: https://bootstrap-package.com
needs: [build-php, build-frontend]
if: (github.ref == 'refs/heads/master') && github.event_name != 'pull_request' && (github.repository == 'benjaminkott/bootstrap_package')
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up PHP Version 7.4
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
tools: composer:v2
- name: Download Deployer
run: |
curl -LO https://deployer.org/deployer.phar;
sudo mv deployer.phar /usr/local/bin/dep;
sudo chmod +x /usr/local/bin/dep;
dep self-update;
- 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
ssh-keyscan ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
- name: Deploy
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_AUTH_SOCK: /tmp/ssh-auth.sock
run: |
dep --file="./Build/deploy.php" deploy;