Fix CI pipeline: deploy on main, webhook on PRs only, show failure output
All checks were successful
CI/CD Pipeline - Apartment API / Scan Dependencies (push) Successful in 13s
CI/CD Pipeline - Apartment API / Lint & Test (push) Successful in 44s
CI/CD Pipeline - Apartment API / Send Webhook Notification (push) Has been skipped
CI/CD Pipeline - Apartment API / Build & Push Image (push) Successful in 1m42s
CI/CD Pipeline - Apartment API / Deploy to Production (push) Successful in 14s
All checks were successful
CI/CD Pipeline - Apartment API / Scan Dependencies (push) Successful in 13s
CI/CD Pipeline - Apartment API / Lint & Test (push) Successful in 44s
CI/CD Pipeline - Apartment API / Send Webhook Notification (push) Has been skipped
CI/CD Pipeline - Apartment API / Build & Push Image (push) Successful in 1m42s
CI/CD Pipeline - Apartment API / Deploy to Production (push) Successful in 14s
- Skip webhook notification on main branch pushes - Gate build/deploy on lint and test success via CI outputs instead of notify job dependency - Print lint and test output to step logs so failures are visible in the Actions UI
This commit is contained in:
12
.github/workflows/deploy.yml
vendored
12
.github/workflows/deploy.yml
vendored
@ -44,6 +44,7 @@ jobs:
|
|||||||
set +e
|
set +e
|
||||||
OUTPUT=$(npm run lint 2>&1)
|
OUTPUT=$(npm run lint 2>&1)
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
|
echo "$OUTPUT"
|
||||||
# Truncate before writing to GITHUB_OUTPUT to prevent
|
# Truncate before writing to GITHUB_OUTPUT to prevent
|
||||||
# "argument list too long" in downstream jobs
|
# "argument list too long" in downstream jobs
|
||||||
echo "lint_output<<EOF" >> $GITHUB_OUTPUT
|
echo "lint_output<<EOF" >> $GITHUB_OUTPUT
|
||||||
@ -58,6 +59,7 @@ jobs:
|
|||||||
set +e
|
set +e
|
||||||
OUTPUT=$(npm test -- --runInBand 2>&1)
|
OUTPUT=$(npm test -- --runInBand 2>&1)
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
|
echo "$OUTPUT"
|
||||||
# Truncate before writing to GITHUB_OUTPUT to prevent
|
# Truncate before writing to GITHUB_OUTPUT to prevent
|
||||||
# "argument list too long" in downstream jobs
|
# "argument list too long" in downstream jobs
|
||||||
echo "test_output<<EOF" >> $GITHUB_OUTPUT
|
echo "test_output<<EOF" >> $GITHUB_OUTPUT
|
||||||
@ -75,7 +77,7 @@ jobs:
|
|||||||
name: Send Webhook Notification
|
name: Send Webhook Notification
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [ci]
|
needs: [ci]
|
||||||
if: always()
|
if: always() && github.ref != 'refs/heads/main'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Send results to n8n webhook
|
- name: Send results to n8n webhook
|
||||||
@ -198,8 +200,12 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
name: Build & Push Image
|
name: Build & Push Image
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [ci, scan-deps, notify]
|
needs: [ci, scan-deps]
|
||||||
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
|
if: >-
|
||||||
|
github.ref == 'refs/heads/main' &&
|
||||||
|
github.event_name != 'pull_request' &&
|
||||||
|
needs.ci.outputs.lint_status == 'success' &&
|
||||||
|
needs.ci.outputs.test_status == 'success'
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
image_tag: ${{ steps.set-tag.outputs.tag }}
|
image_tag: ${{ steps.set-tag.outputs.tag }}
|
||||||
|
|||||||
Reference in New Issue
Block a user