-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into update/patch-4d1b35d
- Loading branch information
Showing
4 changed files
with
252 additions
and
87 deletions.
There are no files selected for viewing
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,248 @@ | ||
name: Run tests | ||
|
||
on: [pull_request] | ||
|
||
jobs: | ||
tests: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout Code | ||
id: checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Extract PHP Version | ||
id: php | ||
uses: docker://ghcr.io/un-ocha/actions:extract-php-version-main | ||
with: | ||
docker_file: 'docker/Dockerfile' | ||
docker_image: 'public.ecr.aws/unocha/php-k8s' | ||
|
||
- name: Setup PHP with PECL extension | ||
uses: shivammathur/setup-php@v2 | ||
if: ${{ !env.ACT }} | ||
with: | ||
php-version: ${{ steps.php.outputs.php_version }} | ||
tools: composer | ||
env: | ||
fail-fast: true | ||
|
||
- name: Setup PHP with PECL extension | ||
uses: shivammathur/setup-php@v2 | ||
if: ${{ env.ACT }} | ||
with: | ||
php-version: ${{ steps.php.outputs.php_version }} | ||
tools: composer | ||
env: | ||
fail-fast: true | ||
runner: self-hosted | ||
|
||
- name: Software versions | ||
id: versions | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
php --version && composer --version | ||
- name: Composer Validate | ||
id: validate | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
composer validate | ||
env: | ||
fail-fast: true | ||
|
||
- name: Code Lint | ||
id: lint | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
test ! -d ./html/modules/custom || find -L ./html/modules/custom -iregex '.*\.\(php\|module\|inc\|install\)$' -print0 | xargs -0 -n 1 -P 4 php -l | ||
test ! -d ./html/themes/custom || find -L ./html/themes/custom -iregex '.*\.\(php\|theme\)$' -print0 | xargs -0 -n 1 -P 4 php -l | ||
env: | ||
fail-fast: true | ||
|
||
- name: Configure AWS Credentials | ||
id: aws | ||
uses: aws-actions/configure-aws-credentials@v2 | ||
if: ${{ !env.ACT }} | ||
with: | ||
aws-access-key-id: ${{ secrets.ECR_AWS_ACCESS_KEY_ID }} | ||
aws-secret-access-key: ${{ secrets.ECR_AWS_SECRET_ACCESS_KEY }} | ||
aws-region: us-east-1 | ||
|
||
- name: Login to Public ECR | ||
id: aws-login | ||
uses: docker/login-action@v2.1.0 | ||
if: ${{ !env.ACT }} | ||
with: | ||
registry: public.ecr.aws | ||
username: ${{ secrets.ECR_AWS_ACCESS_KEY_I }} | ||
password: ${{ secrets.ECR_AWS_SECRET_ACCESS_KEY }} | ||
env: | ||
AWS_REGION: us-east-1 | ||
|
||
- name: Build Image | ||
id: build | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
make | ||
env: | ||
fail-fast: true | ||
|
||
- name: Setup Environment | ||
id: docker | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
docker compose -f tests/docker-compose.yml up -d | ||
sleep 10 | ||
docker ps -a | ||
docker compose -f tests/docker-compose.yml exec -w /srv/www -T drupal composer install | ||
env: | ||
fail-fast: true | ||
|
||
- name: PHPCS | ||
id: phpcs | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
docker compose -f tests/docker-compose.yml exec -u appuser -w /srv/www -T drupal phpcs -p --report=full --standard=phpcs.xml ./html/modules/custom ./html/themes/custom | ||
env: | ||
fail-fast: true | ||
|
||
- name: Install Environment | ||
id: install | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
docker compose -f tests/docker-compose.yml exec -T drupal drush -y si --existing-config | ||
env: | ||
fail-fast: true | ||
|
||
- name: Run tests | ||
id: tests | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
docker compose -f tests/docker-compose.yml exec -T drupal drush -y en dblog | ||
docker compose -f tests/docker-compose.yml exec -T drupal chmod -R 777 /srv/www/html/sites/default/files /srv/www/html/sites/default/private | ||
docker compose -f tests/docker-compose.yml exec -T drupal mkdir -p /srv/www/html/build/logs | ||
docker compose -f tests/docker-compose.yml exec -T drupal chmod -R 777 /srv/www/html/build/logs | ||
docker compose -f tests/docker-compose.yml exec -T -w /srv/www -e XDEBUG_MODE=coverage -e BROWSERTEST_OUTPUT_DIRECTORY=/srv/www/html/sites/default/files/browser_output -e DTT_BASE_URL=http://127.0.0.1 drupal ./vendor/bin/phpunit --coverage-clover /srv/www/html/build/logs/clover.xml --debug | ||
docker cp "$(docker compose -f tests/docker-compose.yml ps -q drupal)":/srv/www/html/build/logs/clover.xml . | ||
env: | ||
fail-fast: true | ||
|
||
- name: Monitor coverage | ||
uses: slavcodev/coverage-monitor-action@v1 | ||
if: ${{ !env.ACT }} | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
coverage_path: "clover.xml" | ||
threshold_alert: 10 | ||
threshold_warning: 50 | ||
threshold_metric: "lines" | ||
comment_footer: false | ||
|
||
- name: Find Comment | ||
uses: peter-evans/find-comment@v2 | ||
if: ${{ !env.ACT }} | ||
id: fc | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
issue-number: ${{ github.event.pull_request.number }} | ||
comment-author: 'github-actions[bot]' | ||
body-includes: Build output | ||
|
||
- name: Create or update comment | ||
uses: peter-evans/create-or-update-comment@v2 | ||
if: ${{ !env.ACT }} | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
comment-id: ${{ steps.fc.outputs.comment-id }} | ||
issue-number: ${{ github.event.pull_request.number }} | ||
body: | | ||
### Build output | ||
#### Composer Validate `${{ steps.validate.outcome }}` | ||
#### PHP Lint `${{ steps.lint.outcome }}` | ||
#### Docker Build `${{ steps.build.outcome }}` | ||
#### Environment Setup `${{ steps.docker.outcome }}` | ||
#### Site Install `${{ steps.install.outcome }}` | ||
#### PHP Code Sniffer `${{ steps.phpcs.outcome }}` | ||
<details><summary>Software Versions</summary> | ||
<code>${{ steps.versions.outputs.stdout }}</code> | ||
</details> | ||
<details><summary>Drupal Logs</summary> | ||
<code>${{ steps.dblog.outputs.stdout }}</code> | ||
</details> | ||
*Pusher: @${{ github.actor }}, Action: `${{ github.event_name }}`, Workflow: `${{ github.workflow }}`* | ||
edit-mode: replace | ||
|
||
- name: Slack Success Notification | ||
id: slack_success | ||
if: ${{ !env.ACT && failure() }} | ||
uses: slackapi/slack-github-action@v1.23.0 | ||
with: | ||
channel-id: '${{ vars.SLACK_CHANNEL }}' | ||
payload: | | ||
{ | ||
"text": "Tests passed for a pull request on ${{ github.repository }}", | ||
"attachments": [ | ||
{ | ||
"color": "#00FF00", | ||
"blocks": [ | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "Pull request by @${{ github.triggering_actor }} to merge _${{ github.head_ref }}_ into _${{ github.base_ref }}_ on <${{ github.repositoryUrl }}|${{ github.repository }}> passed tests (<${{ github.event.pull_request.html_url }}|Review>)" | ||
} | ||
} | ||
] | ||
} | ||
] | ||
} | ||
env: | ||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | ||
|
||
- name: Slack Failure Notification | ||
id: slack_failure | ||
if: ${{ !env.ACT && failure() }} | ||
uses: slackapi/slack-github-action@v1.23.0 | ||
with: | ||
channel-id: '${{ vars.SLACK_CHANNEL }}' | ||
payload: | | ||
{ | ||
"text": "Tests failed for a pull request on ${{ github.repository }}", | ||
"attachments": [ | ||
{ | ||
"color": "#FF0000", | ||
"blocks": [ | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "Pull request by @${{ github.triggering_actor }} to merge _${{ github.head_ref }}_ into _${{ github.base_ref }}_ on <${{ github.repositoryUrl }}|${{ github.repository }}> failed tests (<https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|Review>)" | ||
} | ||
} | ||
] | ||
} | ||
] | ||
} | ||
env: | ||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | ||
|
||
- name: Clean up | ||
id: docker-clean-up | ||
if: ${{ env.ACT }} | ||
uses: cafuego/command-output@main | ||
with: | ||
run: | | ||
docker compose -f tests/docker-compose.yml down | ||
env: | ||
fail-fast: true |
This file was deleted.
Oops, something went wrong.