Skip to content

Release/1.9.4 [main] #901

Release/1.9.4 [main]

Release/1.9.4 [main] #901

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-database:
name: Create preview env DB
uses: ChildMindInstitute/mindlogger-backend-refactor/.github/workflows/create_db.yaml@develop
with:
db-name: "mindlogger_backend_pr_${{ github.event.number }}"
secrets: inherit
on-db-failure:
name: Database creation failed
runs-on: ubuntu-latest
if: ${{ always() && (needs.create_database.result == 'failure' || needs.create_database.result == 'timed_out') }}
needs: [create-database]
steps:
- name: "Send Slack message on failure"
uses: rtCamp/action-slack-notify@v2
env:
SLACK_COLOR: failure
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TEST_RESULTS }}
SLACK_TITLE: Create Database
SLACK_MESSAGE: 'Error during database creation!'
SLACK_ICON: https://github.com/github.png?size=48
MSG_MINIMAL: actions url
run-unit-tests:
uses: ChildMindInstitute/mindlogger-backend-refactor/.github/workflows/tests.yaml@develop
secrets: inherit
comment-unit-tests:
name: Comment on unit test outcome
if: ${{ !cancelled() }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
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
SLACK_MESSAGE: >-
Unit tests for PR-${{ github.event.pull_request.number}} failed in ${{ github.repository }}
\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-unit-tests.outputs.report-url }})
SLACK_ICON: https://github.com/github.png?size=48
MSG_MINIMAL: true
create-preview-env:
needs: [create-database, run-unit-tests]
uses: ChildMindInstitute/mindlogger-backend-refactor/.github/workflows/create-preview-env.yaml@develop
with:
env-name: "pr-${{ github.event.number }}"
env-snake-name: "pr_${{ github.event.number }}"
app-name: ${{ github.event.repository.name }}
vpc-id: vpc-0a83201b71e854abd
copilot-service: mindlogger-backend
secrets: inherit
comment-create-preview-env:
name: Comment on preview env
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
needs: [create-preview-env]
if: ${{ !cancelled() }}
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: ${{ !cancelled() && needs.create-preview-env.result == 'failure' }}
env:
SLACK_COLOR: failure
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_TEST_RESULTS }}
SLACKIFY_MARKDOWN: true
SLACK_TITLE: |
:rotating_light: Preview Environment Failed
SLACK_MESSAGE: >-
Failed to create a preview env for PR-${{ github.event.pull_request.number}} in ${{ github.repository }}
\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 }})
MSG_MINIMAL: true
run-e2e-tests:
name: Run E2E Test Suite
needs: [ create-preview-env, run-unit-tests ]
if: ${{ !cancelled() && needs.run-unit-tests.result == 'success' && needs.create-preview-env.result == 'success' }}
uses: ChildMindInstitute/mindlogger-backend-refactor/.github/workflows/e2e-tests.yaml@develop
secrets: inherit
with:
service-url: ${{ needs.create-preview-env.outputs.service-url }}
db-name: "mindlogger_backend_pr_${{ github.event.number }}"
comment-e2e-tests:
name: Comment on test outcome
if: ${{ !cancelled() }}
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
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
SLACK_MESSAGE: >-
E2E tests for PR-${{ github.event.pull_request.number}} failed in ${{ github.repository }}
\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: ${{ !cancelled() }}
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 }}