E2E workflows #8
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: Preview and Test PR | |
on: | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
# Only run the latest. Cancel old runs in progress. | |
concurrency: | |
cancel-in-progress: true | |
group: "preview-env-manage-${{ github.event.number }}" | |
jobs: | |
create-preview-env: | |
uses: ./.github/workflows/create-preview-env.yaml | |
with: | |
env-name: "pr-${{ github.event.number }}" | |
app-id: d2ojy049t6jawn | |
branch-name: ${{ github.head_ref }} | |
secrets: inherit | |
comment-create-preview-env: | |
name: Comment on preview env | |
runs-on: ubuntu-latest | |
needs: [create-preview-env] | |
if: ${{ always() }} | |
steps: | |
- name: Comment on PR | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
message: | | |
:arrow_right: Preview environment created: [Click Me!](${{ needs.create-preview-env.outputs.service-url }}) | |
reactions: eyes, rocket | |
comment_tag: service-url | |
- name: "Send Slack message on failure" | |
uses: rtCamp/action-slack-notify@v2 | |
if: ${{ always() && needs.create-preview-env.result == 'failure' }} | |
env: | |
SLACK_COLOR: failure | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TEST_RESULTS }} | |
SLACK_TITLE: Preview Environment | |
SLACK_MESSAGE: Failed to create preview environment | |
SLACK_ICON: https://github.com/github.png?size=48 | |
MSG_MINIMAL: actions url | |
run-unit-tests: | |
uses: ./.github/workflows/ci.yml | |
secrets: inherit | |
comment-unit-tests: | |
name: Comment on unit test outcome | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: [run-unit-tests] | |
steps: | |
# - name: Post the link to the report | |
# uses: guibranco/github-status-action-v2@v1 | |
# with: | |
# authToken: ${{secrets.PAT_TOKEN}} | |
# context: 'Unit Test report' | |
# state: ${{ needs.run-unit-tests.result }} | |
# sha: ${{ github.event.pull_request.head.sha }} | |
# target_url: ${{ needs.run-unit-tests.outputs.report-url }} | |
- name: "Send Slack message on failure" | |
if: ${{ needs.run-unit-tests.result != 'success' }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_COLOR: failure | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TEST_RESULTS }} | |
SLACKIFY_MARKDOWN: true | |
SLACK_TITLE: | | |
:rotating_light: Unit test suite failed in ${{ github.repository }} | |
SLACK_MESSAGE: >- | |
Unit tests for PR-${{ github.event.pull_request.number}} failed | |
\n\n | |
:arrow_right: [Action Run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) | |
\n\n | |
:label: [Pull Request](${{ github.event.pull_request.html_url || github.event.head_commit.url }}) | |
SLACK_ICON: https://github.com/github.png?size=48 | |
MSG_MINIMAL: true | |
# TODO Figure out if there can be E2E | |
run-e2e-tests: | |
name: Run E2E Test Suite | |
needs: [ create-preview-env, run-unit-tests ] | |
if: ${{ always() && needs.run-unit-tests.result == 'success' && needs.create-preview-env.result == 'success' }} | |
uses: ./.github/workflows/e2e-tests.yaml | |
secrets: inherit | |
with: | |
service-url: ${{ needs.create-preview-env.outputs.service-url }} | |
comment-e2e-tests: | |
name: Comment on test outcome | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: [run-e2e-tests] | |
steps: | |
- name: "Send Slack message on failure" | |
if: ${{ needs.run-e2e-tests.result != 'success' }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_COLOR: failure | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TEST_RESULTS }} | |
SLACKIFY_MARKDOWN: true | |
SLACK_TITLE: | | |
:rotating_light: E2E test suite failed in ${{ github.repository }} | |
SLACK_MESSAGE: >- | |
E2E tests for PR-${{ github.event.pull_request.number}} failed | |
\n\n | |
:arrow_right: [Action Run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) | |
\n\n | |
:label: [Pull Request](${{ github.event.pull_request.html_url || github.event.head_commit.url }}) | :chart_with_upwards_trend: [Test Report](${{ needs.run-e2e-tests.outputs.report-url }}) | |
SLACK_ICON: https://github.com/github.png?size=48 | |
MSG_MINIMAL: true | |
- name: Comment on PR with test success | |
if: ${{ needs.run-e2e-tests.result == 'success' }} | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
message: | | |
:white_check_mark: E2E tests passed! | |
comment_tag: e2e-results | |
- name: Comment on PR with test failure | |
if: ${{ needs.run-e2e-tests.result != 'success' }} | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
message: | | |
:x: E2E tests failed | |
comment_tag: e2e-results | |
- name: Post the link to the report | |
if: always() | |
uses: guibranco/github-status-action-v2@v1 | |
with: | |
authToken: ${{secrets.GITHUB_TOKEN}} | |
context: 'E2E Test report' | |
state: ${{ needs.run-e2e-tests.result }} | |
sha: ${{ github.event.pull_request.head.sha }} | |
target_url: ${{ needs.run-e2e-tests.outputs.report-url }} | |