Test localgovdrupal/localgov-project project #1076
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
## | |
# Managed by https://github.com/localgovdrupal/github_workflow_manager | |
--- | |
name: Test localgovdrupal/localgov-project project | |
on: | |
push: | |
branches: | |
- '3.x' | |
pull_request: | |
branches: | |
- '3.x' | |
schedule: | |
- cron: '0 7 * * *' | |
workflow_dispatch: | |
env: | |
LOCALGOV_DRUPAL_PROJECT: localgovdrupal/localgov-project | |
LOCALGOV_DRUPAL_PROJECT_PATH: | |
jobs: | |
build: | |
name: Install LocalGov Drupal | |
runs-on: ubuntu-latest | |
env: | |
COMPOSER_EXIT_ON_PATCH_FAILURE: '1' | |
strategy: | |
fail-fast: false | |
matrix: | |
localgov-version: | |
- '3.x' | |
drupal-version: | |
- '~10.0' | |
php-version: | |
- '8.1' | |
- '8.2' | |
- '8.3' | |
steps: | |
- name: Save git branch and git repo names to env if this is not a pull request | |
if: github.event_name != 'pull_request' | |
run: | | |
echo "GIT_BASE=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV | |
echo "GIT_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV | |
echo "GIT_REPO=${GITHUB_REPOSITORY}" >> $GITHUB_ENV | |
- name: Save git branch and git repo names to env if this is a pull request | |
if: github.event_name == 'pull_request' | |
run: | | |
echo "GIT_BASE=${GITHUB_BASE_REF}" >> $GITHUB_ENV | |
echo "GIT_BRANCH=${GITHUB_HEAD_REF}" >> $GITHUB_ENV | |
echo "GIT_REPO=${{ github.event.pull_request.head.repo.full_name }}" >> $GITHUB_ENV | |
- name: Set composer branch reference for version branches | |
if: endsWith(github.ref, '.x') | |
run: echo "COMPOSER_REF=${GIT_BRANCH}-dev" >> $GITHUB_ENV | |
- name: Set composer branch reference for non-version branches | |
if: endsWith(github.ref, '.x') == false | |
run: echo "COMPOSER_REF=dev-${GIT_BRANCH}" >> $GITHUB_ENV | |
- name: Cached workspace | |
uses: actions/cache@v4 | |
with: | |
path: ./html | |
key: localgov-build-${{ matrix.localgov-version }}-${{ matrix.drupal-version }}-${{ matrix.php-version }}-${{ github.run_id }}-${{ secrets.CACHE_VERSION }} | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
- name: Clone drupal_container | |
uses: actions/checkout@v4 | |
with: | |
repository: localgovdrupal/drupal-container | |
ref: php${{ matrix.php-version }} | |
- name: Create LocalGov Drupal project | |
run: composer create-project --stability dev localgovdrupal/localgov-project:${COMPOSER_REF} ./html | |
- name: Obtain all dev dependencies for LocalGov Drupal | |
run: jq --raw-output '.packages[] | select(.name | startswith("localgovdrupal/")) | ."require-dev" | values | to_entries[] | @sh "\(.key):\(.value)"' ./html/composer.lock | sort | uniq | xargs composer --working-dir=./html require --dev --no-interaction | |
phpcs: | |
name: Coding standards checks | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
localgov-version: | |
- '3.x' | |
drupal-version: | |
- '~10.0' | |
php-version: | |
- '8.3' | |
steps: | |
- name: Cached workspace | |
uses: actions/cache@v4 | |
with: | |
path: ./html | |
key: localgov-build-${{ matrix.localgov-version }}-${{ matrix.drupal-version }}-${{ matrix.php-version }}-${{ github.run_id }}-${{ secrets.CACHE_VERSION }} | |
restore-keys: | | |
localgov-build-${{ matrix.localgov-version }}-${{ matrix.drupal-version }}-${{ matrix.php-version }}- | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
- name: Run coding standards checks | |
run: | | |
cd html | |
./bin/phpcs -p ${LOCALGOV_DRUPAL_PROJECT_PATH} | |
phpstan: | |
name: Static analysis checks | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
localgov-version: | |
- '3.x' | |
drupal-version: | |
- '~10.0' | |
php-version: | |
- '8.3' | |
steps: | |
- name: Cached workspace | |
uses: actions/cache@v4 | |
with: | |
path: ./html | |
key: localgov-build-${{ matrix.localgov-version }}-${{ matrix.drupal-version }}-${{ matrix.php-version }}-${{ github.run_id }}-${{ secrets.CACHE_VERSION }} | |
restore-keys: | | |
localgov-build-${{ matrix.localgov-version }}-${{ matrix.drupal-version }}-${{ matrix.php-version }}- | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
- name: Run PHPStan code checks | |
run: | | |
cd html | |
./bin/phpstan analyse -c ./phpstan.neon ./web/modules/contrib/localgov* ./web/profiles/contrib/localgov* ./web/themes/contrib/localgov* | |
phpunit: | |
name: PHPUnit tests | |
needs: build | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
localgov-version: | |
- '3.x' | |
drupal-version: | |
- '~10.0' | |
php-version: | |
- '8.1' | |
- '8.2' | |
- '8.3' | |
steps: | |
- name: Clone Drupal container | |
uses: actions/checkout@v4 | |
with: | |
repository: localgovdrupal/drupal-container | |
ref: php${{ matrix.php-version }} | |
- name: Cached workspace | |
uses: actions/cache@v4 | |
with: | |
path: ./html | |
key: localgov-build-${{ matrix.localgov-version }}-${{ matrix.drupal-version }}-${{ matrix.php-version }}-${{ github.run_id }}-${{ secrets.CACHE_VERSION }} | |
restore-keys: | | |
localgov-build-${{ matrix.localgov-version }}-${{ matrix.drupal-version }}-${{ matrix.php-version }}- | |
- name: Start Docker environment | |
run: docker compose -f docker-compose.yml up -d | |
- name: Run PHPUnit tests | |
run: | | |
mkdir -p ./html/web/sites/simpletest && chmod 777 ./html/web/sites/simpletest | |
docker exec -t drupal bash -c 'chown docker:docker -R /var/www/html' | |
docker exec -u docker -t drupal bash -c "cd /var/www/html && ./bin/paratest --processes=4" |