mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
80 lines
3.0 KiB
YAML
80 lines
3.0 KiB
YAML
name: PR E2E
|
||
|
||
on:
|
||
pull_request_review:
|
||
types: [submitted]
|
||
|
||
concurrency:
|
||
group: e2e-${{ github.event.pull_request.number || github.ref }}-${{github.event.review.state}}
|
||
cancel-in-progress: true
|
||
|
||
jobs:
|
||
eligibility_check:
|
||
name: Check Eligibility for Test Run
|
||
if: github.event.review.state == 'approved'
|
||
uses: ./.github/workflows/check-run-eligibility.yml
|
||
with:
|
||
is_pr_approved_by_maintainer: true
|
||
|
||
run-e2e-tests:
|
||
name: E2E
|
||
uses: ./.github/workflows/e2e-reusable.yml
|
||
needs: [eligibility_check]
|
||
if: needs.eligibility_check.outputs.should_run == 'true'
|
||
with:
|
||
pr_number: ${{ github.event.pull_request.number }}
|
||
user: ${{ github.event.pull_request.user.login || 'PR User' }}
|
||
secrets:
|
||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||
|
||
post-e2e-tests:
|
||
name: E2E - Checks
|
||
runs-on: ubuntu-latest
|
||
needs: [eligibility_check, run-e2e-tests]
|
||
if: always() && needs.eligibility_check.result != 'skipped'
|
||
steps:
|
||
- name: Determine Outcome and Comment Message
|
||
id: determine_outcome
|
||
run: |
|
||
JOB_OUTCOME="success"
|
||
COMMENT_BODY=""
|
||
SHOULD_POST_COMMENT="false"
|
||
|
||
if [[ "${{ needs.eligibility_check.outputs.should_run }}" == "false" ]]; then
|
||
COMMENT_BODY="ℹ️ E2E tests were not run for this PR based on the eligibility criteria."
|
||
SHOULD_POST_COMMENT="true"
|
||
JOB_OUTCOME="success"
|
||
elif [[ "${{ needs.run-e2e-tests.result }}" == "success" ]]; then
|
||
COMMENT_BODY=":white_check_mark: All Cypress E2E specs passed"
|
||
SHOULD_POST_COMMENT="true"
|
||
JOB_OUTCOME="success"
|
||
elif [[ "${{ needs.run-e2e-tests.result }}" == "failure" ]]; then
|
||
COMMENT_BODY=":warning: Some Cypress E2E specs are failing, please fix them before merging"
|
||
SHOULD_POST_COMMENT="true"
|
||
JOB_OUTCOME="failure"
|
||
else
|
||
COMMENT_BODY="ℹ️ E2E tests were scheduled but did not complete as expected (Result: ${{ needs.run-e2e-tests.result }})."
|
||
SHOULD_POST_COMMENT="true"
|
||
JOB_OUTCOME="failure"
|
||
fi
|
||
|
||
echo "comment_body=$COMMENT_BODY" >> $GITHUB_OUTPUT
|
||
echo "should_post_comment=$SHOULD_POST_COMMENT" >> $GITHUB_OUTPUT
|
||
echo "job_outcome=$JOB_OUTCOME" >> $GITHUB_OUTPUT
|
||
|
||
- name: Create or Update PR Comment
|
||
if: steps.determine_outcome.outputs.should_post_comment == 'true' && needs.eligibility_check.outputs.should_run == 'true'
|
||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043
|
||
with:
|
||
issue-number: ${{ github.event.pull_request.number }}
|
||
body: ${{ steps.determine_outcome.outputs.comment_body }}
|
||
token: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
- name: Finalize Job Status
|
||
run: |
|
||
if [[ "${{ steps.determine_outcome.outputs.job_outcome }}" == "failure" ]]; then
|
||
exit 1
|
||
else
|
||
exit 0
|
||
fi
|