Reduce event importer invalidation #482
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: PHPUnit and Acceptance Tests | |
on: [push] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
phpunit: | |
name: PHPUnit Coverage Tests | |
runs-on: ubuntu-latest | |
env: | |
DRUPAL_DATABASE_NAME: drupal | |
DRUPAL_DATABASE_USERNAME: drupal | |
DRUPAL_DATABASE_PASSWORD: drupal | |
DRUPAL_DATABASE_HOST: mysql | |
container: | |
image: pookmish/drupal8ci:latest | |
services: | |
mysql: | |
image: mysql:5.7 | |
env: | |
MYSQL_DATABASE: drupal | |
MYSQL_USER: drupal | |
MYSQL_PASSWORD: drupal | |
MYSQL_ROOT_PASSWORD: drupal | |
ports: | |
- 33306:3306 | |
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
vendor | |
docroot/core | |
docroot/libraries | |
docroot/modules/contrib | |
key: 2.x-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} | |
restore-keys: | | |
2.x-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} | |
2.x-${{ hashFiles('composer.json') }}- | |
2.x- | |
- run: git config --system --add safe.directory '*' | |
- name: Run Unit Tests | |
env: | |
CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}} | |
run: | | |
composer install -n | |
blt blt:telemetry:disable --no-interaction | |
blt tests:phpunit:coverage --no-interaction | |
- name: Save Test Results | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: unit-tests-results | |
path: $GITHUB_WORKSPACE/artifacts | |
library_acceptance: | |
name: Library Codeception Acceptance Tests | |
runs-on: ubuntu-latest | |
env: | |
DRUPAL_DATABASE_NAME: drupal | |
DRUPAL_DATABASE_USERNAME: drupal | |
DRUPAL_DATABASE_PASSWORD: drupal | |
DRUPAL_DATABASE_HOST: mysql | |
container: | |
image: pookmish/drupal8ci:latest | |
services: | |
mysql: | |
image: mysql:5.7 | |
env: | |
MYSQL_DATABASE: drupal | |
MYSQL_USER: drupal | |
MYSQL_PASSWORD: drupal | |
MYSQL_ROOT_PASSWORD: drupal | |
ports: | |
- 33306:3306 | |
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
vendor | |
docroot/core | |
docroot/libraries | |
docroot/modules/contrib | |
key: 2.x-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} | |
restore-keys: | | |
2.x-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} | |
2.x-${{ hashFiles('composer.json') }}- | |
2.x- | |
- run: git config --system --add safe.directory '*' | |
- name: Run tests | |
run: | | |
mysql -h mysql -P 3306 -u root -pdrupal -e 'SET GLOBAL max_allowed_packet=67108864;' | |
rm -rf /var/www/html | |
ln -snf $GITHUB_WORKSPACE /var/www/html | |
apachectl stop | |
apachectl start | |
composer install -n | |
blt blt:telemetry:disable --no-interaction | |
blt drupal:install --site=library -n | |
drush xmlsitemap:rebuild | |
blt codeception --suite=acceptance | |
- name: Save Test Results | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: acceptance-tests-results | |
path: artifacts | |
library_functional: | |
name: Library Codeception Functional Tests | |
runs-on: ubuntu-latest | |
env: | |
DRUPAL_DATABASE_NAME: drupal | |
DRUPAL_DATABASE_USERNAME: drupal | |
DRUPAL_DATABASE_PASSWORD: drupal | |
DRUPAL_DATABASE_HOST: mysql | |
container: | |
image: pookmish/drupal8ci:latest | |
options: '--network-alias drupal8ci' | |
services: | |
selenium: | |
image: selenium/standalone-chrome:115.0 | |
options: '--shm-size="2g"' | |
mysql: | |
image: mysql:5.7 | |
env: | |
MYSQL_DATABASE: drupal | |
MYSQL_USER: drupal | |
MYSQL_PASSWORD: drupal | |
MYSQL_ROOT_PASSWORD: drupal | |
ports: | |
- 33306:3306 | |
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
vendor | |
docroot/core | |
docroot/libraries | |
docroot/modules/contrib | |
docroot/modules/custom | |
key: 2.x-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} | |
restore-keys: | | |
2.x-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} | |
2.x-${{ hashFiles('composer.json') }}- | |
2.x- | |
- run: git config --system --add safe.directory '*' | |
- name: Install Site | |
run: | | |
mysql -h mysql -P 3306 -u root -pdrupal -e 'SET GLOBAL max_allowed_packet=67108864;' | |
rm -rf /var/www/html | |
ln -snf $GITHUB_WORKSPACE /var/www/html | |
apachectl stop | |
apachectl start | |
composer install -n | |
blt blt:telemetry:disable --no-interaction | |
mkdir -p docroot/sites/default/files | |
chmod -R 777 docroot/sites/default/files/ | |
rm -rf docroot/sites/library/files | |
ln -sL ../default/files/ docroot/sites/library/files | |
blt drupal:install --site=library -n | |
drush image:derive thumbnail $(drush sql:query 'select uri from file_managed where uri like "%//media/%" limit 1') | |
drush xmlsitemap:rebuild | |
drush cr | |
- name: Run tests | |
run: | | |
mkdir -p artifacts/_data/ | |
blt codeception --suite=functional | |
- name: Save Test Results | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: functional-tests-results | |
path: artifacts | |
deploy: | |
name: Deploy Artifact | |
needs: [phpunit, library_acceptance, library_functional] | |
runs-on: ubuntu-latest | |
env: | |
DRUPAL_DATABASE_NAME: drupal | |
DRUPAL_DATABASE_USERNAME: drupal | |
DRUPAL_DATABASE_PASSWORD: drupal | |
DRUPAL_DATABASE_HOST: mysql | |
container: | |
image: pookmish/drupal8ci:latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
vendor | |
docroot/core | |
docroot/libraries | |
docroot/modules/contrib | |
key: 2.x-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} | |
restore-keys: | | |
2.x-${{ hashFiles('composer.json') }}-${{ hashFiles('composer.lock') }} | |
2.x-${{ hashFiles('composer.json') }}- | |
2.x- | |
- name: Install SSH key | |
uses: shimataro/ssh-key-action@v2 | |
with: | |
key: ${{ secrets.SSH_KEY }} | |
name: id_rsa | |
known_hosts: ${{ secrets.KNOWN_HOSTS }} | |
if_key_exists: fail | |
- run: git config --system --add safe.directory '*' | |
- name: Deploy Artifact | |
run: | | |
git config --global user.email "sws-developers@lists.stanford.edu" | |
git config --global user.name "Github Actions" | |
ssh-keyscan -t rsa svn-45197.prod.hosting.acquia.com >> /root/.ssh/known_hosts | |
composer install -n | |
blt blt:telemetry:disable --no-interaction | |
blt deploy -v -n |