Skip to content

Main

Main #1243

Workflow file for this run

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.1' ]
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.1' ]
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.1' ]
# 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.1' ]
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.1' ]
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 check-coding-standards/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 check-coding-standards/markdownlint
translations:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
php: [ '8.1' ]
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