Skip to content

E2E workflows

E2E workflows #8

Workflow file for this run

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 }}