Digital post #1293
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
on: pull_request | |
name: Review | |
jobs: | |
changelog: | |
runs-on: ubuntu-latest | |
name: Changelog should be updated | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 2 | |
- name: Git fetch | |
run: git fetch | |
- name: Check that changelog has been updated. | |
run: git diff --exit-code origin/${{ github.base_ref }} -- CHANGELOG.md && exit 1 || exit 0 | |
test-composer-install: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '8.3' ] | |
name: Validate composer (${{ matrix.php}}) | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup PHP, with composer and extensions | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php}} | |
extensions: apcu, ctype, iconv, imagick, json, redis, soap, xmlreader, zip | |
coverage: none | |
- name: Get composer cache directory | |
id: composer-cache | |
run: echo "::set-output name=dir::$(composer config cache-files-dir)" | |
- name: Cache composer dependencies | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ matrix.php }}-composer- | |
- name: Validate composer files | |
run: composer validate composer.json | |
- name: Composer install with exported .env variables | |
run: | | |
set -a && source .env && set +a | |
APP_ENV=prod composer install --no-dev -o | |
unit_tests: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '8.3' ] | |
name: Unit tests (${{ matrix.php}}) | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup PHP, with composer and extensions | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php}} | |
extensions: apcu, ctype, iconv, imagick, json, redis, soap, xmlreader, zip | |
coverage: none | |
- name: Get composer cache directory | |
id: composer-cache | |
run: echo "::set-output name=dir::$(composer config cache-files-dir)" | |
- name: Cache composer dependencies | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ matrix.php }}-composer- | |
- name: Install Dependencies | |
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist | |
- name: Unit tests | |
run: ./bin/phpunit --coverage-clover=coverage/unit.xml | |
# end-to-end-tests: | |
# runs-on: ubuntu-20.04 | |
# env: | |
# DATABASE_URL: mysql://db:db@127.0.0.1:3306/db?serverVersion=mariadb-10.3.17&charset=utf8mb4 | |
# services: | |
# mariadb: | |
# image: mariadb:10.3 | |
# env: | |
# MYSQL_USER: db | |
# MYSQL_PASSWORD: db | |
# MYSQL_DATABASE: db | |
# MYSQL_ROOT_PASSWORD: db | |
# ports: | |
# - 3306:3306 | |
# options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# php: [ '8.3' ] | |
# steps: | |
# - name: Checkout | |
# uses: actions/checkout@v2 | |
# - name: Setup PHP, with composer and extensions | |
# uses: shivammathur/setup-php@v2 | |
# with: | |
# php-version: ${{ matrix.php}} | |
# extensions: apcu, ctype, iconv, imagick, json, redis, soap, xmlreader, zip | |
# coverage: none | |
# tools: composer:v2, symfony-cli | |
# - name: Get composer cache directory | |
# id: composer-cache | |
# run: echo "::set-output name=dir::$(composer config cache-files-dir)" | |
# - name: Cache composer dependencies | |
# uses: actions/cache@v2 | |
# with: | |
# path: ${{ steps.composer-cache.outputs.dir }} | |
# key: ${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} | |
# restore-keys: ${{ matrix.php }}-composer- | |
# - name: Validate composer files | |
# run: composer validate composer.json | |
# - name: Composer install with exported .env variables | |
# run: | | |
# set -a && source .env && set +a | |
# APP_ENV=dev composer install | |
# - name: Yarn install | |
# uses: actions/setup-node@v2 | |
# with: | |
# node-version: '14' | |
# - run: yarn install | |
# - name: Yarn build | |
# run: yarn run encore production | |
# - name: Run local server | |
# run: symfony server:start --no-tls --port=8000 -d | |
# - name: Run Doctrine Migrations | |
# run: php bin/console doctrine:migrations:migrate --no-interaction | |
# - name: Start LibreOffice API container | |
# run: docker build --tag libreoffice-api ./.docker/libreoffice-api && docker run -d --publish 9980 --name libreoffice-api libreoffice-api | |
# - name: Update environment to use libreoffice-api container | |
# # `docker port` writes two lines on Ubuntu, e.g. | |
# # 0.0.0.0:49160 | |
# # :::49160 | |
# run: echo LIBREOFFICE_API_BASE_URL="http://$(docker port libreoffice-api 9980 | head -1)" >> .env.local && cat .env.local | |
# - name: Load Fixtures | |
# run: php bin/console hautelook:fixtures:load --purge-with-truncate --no-interaction | |
# - name: Cypress | |
# uses: cypress-io/github-action@v2 | |
# env: | |
# CYPRESS_baseUrl: http://127.0.0.1:8000 | |
php-cs-fixer: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '8.3' ] | |
name: PHP Coding Standards Fixer (${{ matrix.php }}) | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup PHP, with composer and extensions | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php}} | |
extensions: apcu, ctype, iconv, imagick, json, redis, soap, xmlreader, zip | |
coverage: none | |
- name: Get composer cache directory | |
id: composer-cache | |
run: echo "::set-output name=dir::$(composer config cache-files-dir)" | |
- name: Cache composer dependencies | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ matrix.php }}-composer- | |
- name: Install Dependencies | |
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist | |
- name: php-cs-fixer | |
run: phpdbg -qrr ./vendor/bin/php-cs-fixer fix --dry-run | |
twigcs: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '8.3' ] | |
name: Twigcs (${{ matrix.php }}) | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup PHP, with composer and extensions | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php}} | |
extensions: apcu, ctype, iconv, imagick, json, redis, soap, xmlreader, zip | |
coverage: none | |
- name: Get composer cache directory | |
id: composer-cache | |
run: echo "::set-output name=dir::$(composer config cache-files-dir)" | |
- name: Cache composer dependencies | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ matrix.php }}-composer- | |
- name: Install Dependencies | |
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist | |
- name: php-cs-fixer | |
run: phpdbg -qrr ./vendor/bin/twigcs templates | |
javascript-standard-style: | |
runs-on: ubuntu-20.04 | |
name: JavaScript Standard Style | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache yarn packages | |
uses: actions/cache@v2 | |
id: yarn-cache | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Yarn install | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '16' | |
- run: yarn install | |
- name: javascript-standard-style | |
run: yarn coding-standards-check/standard | |
markdownlint: | |
runs-on: ubuntu-20.04 | |
name: markdownlint | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache yarn packages | |
uses: actions/cache@v2 | |
id: yarn-cache | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Yarn install | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '16' | |
- run: yarn install | |
- name: markdownlint | |
run: yarn coding-standards-check/markdownlint | |
translations: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '8.3' ] | |
name: Check translations are up to date (${{ matrix.php}}) | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Update translations | |
run: | | |
docker network create frontend | |
docker compose run --rm --user root phpfpm composer install --no-scripts | |
docker compose run --rm --user root phpfpm composer update-translations | |
- name: Check for changes in translation files | |
run: | | |
git diff --diff-filter=ACMRT --exit-code translations | |
# @todo Run code analysis |