Skip to content
Open
Changes from 1 commit
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
c4089ff
chore: build break test with 31st June
pranav-new-relic Nov 7, 2025
325c207
chore: AI experiment to revamp netlify build comment workflow
pranav-new-relic Nov 7, 2025
bd5807a
chore: try making the workflow more resilient?
pranav-new-relic Nov 7, 2025
7067c95
chore: breaking the infinite loop of build, by splitting build and de…
pranav-new-relic Nov 7, 2025
14f3427
chore: test PR v2, build break test with 31st June: DO NOT MERGE
pranav-new-relic Nov 7, 2025
e8b32c1
chore: optimize workflow?
pranav-new-relic Nov 7, 2025
45f85f9
chore: fix forked member check part of the workflow?
pranav-new-relic Nov 7, 2025
0c499f0
chore: working so good so far, optimize timestamp diff logic
pranav-new-relic Nov 7, 2025
6608308
chore: works as expected, some cosmetic changes
pranav-new-relic Nov 7, 2025
a2f5c11
chore: works as expected, some cosmetic changes, probably final?
pranav-new-relic Nov 7, 2025
e30124a
chore: merge branch 'develop' into np-test-v2
pranav-new-relic Nov 8, 2025
b13e0f1
chore: remove the build failure inducer to test success flow
pranav-new-relic Nov 8, 2025
b804bdf
chore: more cosmetics, timezone changes, informative PR comments
pranav-new-relic Nov 8, 2025
0c3b9ad
chore: tiny fixes
pranav-new-relic Nov 8, 2025
a349995
chore: tiny fixes
pranav-new-relic Nov 8, 2025
178dac1
chore: hopefully cosmetic changes should work now?
pranav-new-relic Nov 8, 2025
48e9c34
chore: hopefully cosmetic changes should work now?
pranav-new-relic Nov 8, 2025
2af0fc9
chore: hopefully cosmetic changes should work now?
pranav-new-relic Nov 8, 2025
c8b24e1
chore: more cosmetic changes
pranav-new-relic Nov 9, 2025
3aa8f44
chore: more cosmetic changes
pranav-new-relic Nov 9, 2025
4e8055f
chore: probably the final set of cosmetic changes to logs
pranav-new-relic Nov 9, 2025
b471f8f
chore: introduce immediate change to test parallel build that will break
pranav-new-relic Nov 9, 2025
00ea5c5
chore: workflow concurrency test 1
pranav-new-relic Nov 9, 2025
a3d6027
chore: workflow concurrency test 1, change to trigger concurrency
pranav-new-relic Nov 9, 2025
21ca8d0
chore: revert concurrency logic, revisit tomorrow
pranav-new-relic Nov 9, 2025
516e1a6
chore: revert concurrency logic, revisit tomorrow
pranav-new-relic Nov 9, 2025
62c2af4
chore: concurrency test v2
pranav-new-relic Nov 9, 2025
4695fab
chore: concurrency test v2, trigger concurrency now
pranav-new-relic Nov 9, 2025
f57bf80
chore: revert concurrency strategy v2
pranav-new-relic Nov 9, 2025
a507627
chore: revert concurrency strategy v2
pranav-new-relic Nov 9, 2025
8eb5dbf
chore: revisit running deploy block mechanism
pranav-new-relic Nov 25, 2025
b96d052
chore: merge branch 'develop' into np-test-v2
pranav-new-relic Nov 25, 2025
924ea45
chore: revert failure case
pranav-new-relic Nov 25, 2025
50fa9d3
chore: small scale cosmetic fixes to dates
pranav-new-relic Nov 25, 2025
e611b72
chore: small scale cosmetic fixes
pranav-new-relic Nov 25, 2025
af94944
chore: empty commit test #1
pranav-new-relic Nov 25, 2025
37e0d09
chore: empty commit test, expect no new deployment
pranav-new-relic Nov 25, 2025
e8fb944
chore: test commit to tigger deployment
pranav-new-relic Nov 25, 2025
50a51e8
chore: empty commit to induce ongoing deploy comment
pranav-new-relic Nov 25, 2025
c901d11
chore: changes to try validating the comment again
pranav-new-relic Nov 25, 2025
e5d6296
chore: commit to trigger deploy
pranav-new-relic Nov 25, 2025
ecac756
chore: empty commit to induce ongoing deploy comment
pranav-new-relic Nov 25, 2025
bffdc3b
chore: empty commit to induce ongoing deploy comment
pranav-new-relic Nov 25, 2025
ec0f92e
chore: final set of changes to validate tokens when they expire
pranav-new-relic Nov 25, 2025
2c8bb45
chore: remove experimental triggers, revert to comment based
pranav-new-relic Nov 26, 2025
c82a8cc
chore: merge branch 'develop' into np-test-v2
pranav-new-relic Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: tiny fixes
  • Loading branch information
pranav-new-relic committed Nov 8, 2025
commit a34999533c61107d549d1ebb32c09aa7ef266463
92 changes: 55 additions & 37 deletions .github/workflows/final-manual-deploy-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ jobs:
runs-on: ubuntu-latest

steps:
# New step to check if the PR is from a forked repository.
# If the PR is from a fork, doesn't run. Only runs for branches in the main repo.
# New step to check if the PR is from a fork
- name: Check if PR is from a fork
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -231,9 +230,15 @@ jobs:
echo "🆔 Deploy ID: $DEPLOY_ID"
echo "🔗 Netlify Build URL: $BUILD_URL"
echo "📅 Created at (UTC): $CREATED_AT"
echo "📅 Created at (IST): $(TZ=Asia/Kolkata date -d @$CREATED_TIMESTAMP)"
echo "📅 Created at (IST): $(TZ=Asia/Kolkata date -d @$CREATED_TIMESTAMP '+%Y-%m-%d %H:%M:%S IST')"
echo "----------------------------------------"
DEPLOY_FOUND_VIA="commit"

# Export values for use in the next step
echo "deploy_id=$DEPLOY_ID" >> $GITHUB_OUTPUT
echo "build_url=$BUILD_URL" >> $GITHUB_OUTPUT
echo "deploy_found_via=$DEPLOY_FOUND_VIA" >> $GITHUB_OUTPUT
echo "created_at_ist=$(TZ=Asia/Kolkata date -d @$CREATED_TIMESTAMP '+%Y-%m-%d %H:%M:%S IST')" >> $GITHUB_OUTPUT
break
else
echo "⚠️ Found deployment but it's too old (created ${TIME_DIFF}s before trigger)"
Expand Down Expand Up @@ -263,34 +268,37 @@ jobs:
echo "🆔 Deploy ID: $DEPLOY_ID"
echo "🔗 Netlify Build URL: $BUILD_URL"
echo "📅 Created at (UTC): $CREATED_AT"
echo "📅 Created at (IST): $(TZ=Asia/Kolkata date -d @$CREATED_TIMESTAMP)"
echo "📅 Created at (IST): $(TZ=Asia/Kolkata date -d @$CREATED_TIMESTAMP '+%Y-%m-%d %H:%M:%S IST')"
echo "----------------------------------------"
DEPLOY_FOUND_VIA="branch"

# Export values for use in the next step
echo "deploy_id=$DEPLOY_ID" >> $GITHUB_OUTPUT
echo "build_url=$BUILD_URL" >> $GITHUB_OUTPUT
echo "deploy_found_via=$DEPLOY_FOUND_VIA" >> $GITHUB_OUTPUT
echo "created_at_ist=$(TZ=Asia/Kolkata date -d @$CREATED_TIMESTAMP '+%Y-%m-%d %H:%M:%S IST')" >> $GITHUB_OUTPUT
else
echo "❌ No deployment found for branch-based validation either."
exit 1
fi
fi

# Update the PR comment with deployment details
echo "🔄 Updating PR comment with deployment details..."
if [ "$DEPLOY_FOUND_VIA" = "commit" ]; then
COMMENT_MESSAGE="### 🚀 Netlify Deployment In Progress\n\n"
COMMENT_MESSAGE+="The deployment was found via **commit-based validation**.\n\n"
COMMENT_MESSAGE+="- **Commit SHA:** \`$SHA\`\n"
COMMENT_MESSAGE+="- **Netlify Build URL:** [View Deployment]($BUILD_URL)\n"
COMMENT_MESSAGE+="- **Deployment Created At (IST):** $(TZ=Asia/Kolkata date -d @$CREATED_TIMESTAMP)\n"
elif [ "$DEPLOY_FOUND_VIA" = "branch" ]; then
COMMENT_MESSAGE="### 🚀 Netlify Deployment In Progress\n\n"
COMMENT_MESSAGE+="The deployment was found via **branch-based validation**.\n\n"
COMMENT_MESSAGE+="- **Branch Name:** \`$BRANCH_NAME\`\n"
COMMENT_MESSAGE+="- **Netlify Build URL:** [View Deployment]($BUILD_URL)\n"
COMMENT_MESSAGE+="- **Deployment Created At (IST):** $(TZ=Asia/Kolkata date -d @$CREATED_TIMESTAMP)\n"
fi
# Update PR comment with deployment details
- name: Update PR comment with deployment details
if: steps.poll_netlify.outputs.deploy_id != ''
uses: thollander/actions-comment-pull-request@v2
with:
message: |
### 🚀 Netlify Deployment In Progress

The deployment was found via **${{ steps.poll_netlify.outputs.deploy_found_via }}-based validation**.

echo "$COMMENT_MESSAGE" > comment_body.txt
${{ steps.poll_netlify.outputs.deploy_found_via == 'commit' && format('- **Commit SHA:** `{0}`', steps.netlify_build.outputs.sha) || format('- **Branch Name:** `{0}`', steps.netlify_build.outputs.branch_name) }}
- **Netlify Build URL:** [View Deployment](${{ steps.poll_netlify.outputs.build_url }})
- **Deployment Created At (IST):** ${{ steps.poll_netlify.outputs.created_at_ist }}

gh pr comment $PR_NUMBER --body-file comment_body.txt
⏳ Build is currently in progress. Monitoring status...
comment_tag: manual-build-comment

# This step checks the status of the deployment and reports back to the PR
- name: Check deployment status and report
Expand All @@ -311,7 +319,7 @@ jobs:
echo "📊 Starting deployment status check..."
echo "🆔 Deploy ID: $DEPLOY_ID"
echo "📌 Branch: $BRANCH_NAME"
echo "📅 Triggered at (IST): $(TZ=Asia/Kolkata date -d @${{ steps.netlify_build.outputs.trigger_time }})"
echo "📅 Triggered at (IST): $(TZ=Asia/Kolkata date -d @${{ steps.netlify_build.outputs.trigger_time }} '+%Y-%m-%d %H:%M:%S IST')"

# If no deploy ID found, fallback to branch name
if [ -z "$DEPLOY_ID" ] || [ "$DEPLOY_ID" = "null" ]; then
Expand All @@ -320,6 +328,10 @@ jobs:
fi

while [ $ELAPSED_TIME -lt $MAX_WAIT_TIME ]; do
MINUTES_ELAPSED=$(awk "BEGIN {print $ELAPSED_TIME/60}")
echo "🔄 Checking deployment status... (⏱️ elapsed: ${MINUTES_ELAPSED}/30 minutes) at $(TZ=Asia/Kolkata date '+%Y-%m-%d %H:%M:%S IST')"
echo "----------------------------------------"

if [ "$USE_FALLBACK" = "true" ]; then
# Fallback: Get latest deployment for branch
DEPLOYS=$(curl -s -H "Authorization: Bearer $NETLIFY_TOKEN" \
Expand All @@ -339,6 +351,9 @@ jobs:
DEPLOY_URL=$(echo "$DEPLOY" | jq -r '.deploy_ssl_url // .ssl_url // .url')
ERROR_MESSAGE=$(echo "$DEPLOY" | jq -r '.error_message // ""')

# Construct the Netlify Build URL
BUILD_URL="https://app.netlify.com/sites/$NETLIFY_SITE_ID/deploys/$DEPLOY_ID"

# Update DEPLOY_ID if we were using fallback
if [ "$USE_FALLBACK" = "true" ] && [ -z "$DEPLOY_ID" ]; then
DEPLOY_ID=$CURRENT_DEPLOY_ID
Expand All @@ -349,22 +364,23 @@ jobs:

if [ "$STATE" = "ready" ]; then
echo "✅ Deployment successful!"
echo "🔗 Netlify Build URL: $DEPLOY_URL"
echo "🔗 Netlify Build URL: $BUILD_URL"
echo "🌐 Deploy URL: $DEPLOY_URL"
echo "status=success" >> $GITHUB_OUTPUT
echo "deploy_url=$DEPLOY_URL" >> $GITHUB_OUTPUT
echo "deploy_id=$DEPLOY_ID" >> $GITHUB_OUTPUT
exit 0
elif [ "$STATE" = "error" ]; then
echo "❌ Deployment failed!"
echo "🔗 Netlify Build URL: $DEPLOY_URL"
echo "🔗 Netlify Build URL: $BUILD_URL"
echo "💥 Error: $ERROR_MESSAGE"
echo "status=failure" >> $GITHUB_OUTPUT
echo "error_message=$ERROR_MESSAGE" >> $GITHUB_OUTPUT
echo "deploy_id=$DEPLOY_ID" >> $GITHUB_OUTPUT
exit 0
elif [ "$STATE" = "building" ] || [ "$STATE" = "enqueued" ] || [ "$STATE" = "processing" ]; then
echo "⏳ Deployment in progress (state: $STATE)..."
echo "🔗 Netlify Build URL: $DEPLOY_URL"
echo "🔗 Netlify Build URL: $BUILD_URL"
else
echo "⚠️ Unknown state: $STATE"
fi
Expand All @@ -378,28 +394,29 @@ jobs:

echo "⏱️ Timeout reached after ${MAX_WAIT_TIME}s"
echo "⚠️ Build is still running or Netlify is experiencing delays"
echo "🔗 Netlify Build URL: $DEPLOY_URL"
echo "status=timeout" >> $GITHUB_OUTPUT
echo "deploy_id=$DEPLOY_ID" >> $GITHUB_OUTPUT

# Post success comment
- name: Post success comment
if: steps.poll_netlify.outputs.status == 'success'
if: steps.check_status.outputs.status == 'success'
uses: thollander/actions-comment-pull-request@v2
with:
message: |
### ✅ Netlify Preview Deploy Successful!

Your preview deployment has completed successfully and is now live!

🌐 **Preview URL:** [${{ steps.poll_netlify.outputs.deploy_url }}](${{ steps.poll_netlify.outputs.deploy_url }})
🔗 **Netlify Deployment:** [View Deployment](https://app.netlify.com/sites/${{ secrets.NETLIFY_SITE_ID }}/deploys/${{ steps.poll_netlify.outputs.deploy_id }})
🌐 **Preview URL:** [${{ steps.check_status.outputs.deploy_url }}](${{ steps.check_status.outputs.deploy_url }})
🔗 **Netlify Deployment:** [View Deployment](https://app.netlify.com/sites/${{ secrets.NETLIFY_SITE_ID }}/deploys/${{ steps.check_status.outputs.deploy_id }})
🔗 **GitHub Actions Job:** [View Job](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})

The preview is ready for review. Please test your changes thoroughly before merging.
comment_tag: manual-build-comment

# Post failure comment
- name: Post failure comment
if: steps.poll_netlify.outputs.status == 'failure'
if: steps.check_status.outputs.status == 'failure'
uses: thollander/actions-comment-pull-request@v2
with:
message: |
Expand All @@ -412,13 +429,13 @@ jobs:
### 🔴 Critical Issue Details:

- **Status:** Build Failed
- **Deploy ID:** `${{ steps.poll_netlify.outputs.deploy_id }}`
- **Deploy ID:** `${{ steps.check_status.outputs.deploy_id }}`
- **Error Message:**
```
${{ steps.poll_netlify.outputs.error_message }}
${{ steps.check_status.outputs.error_message }}
```

🔗 **Netlify Deployment:** [View Deployment](https://app.netlify.com/sites/${{ secrets.NETLIFY_SITE_ID }}/deploys/${{ steps.poll_netlify.outputs.deploy_id }})
🔗 **Netlify Deployment:** [View Deployment](https://app.netlify.com/sites/${{ secrets.NETLIFY_SITE_ID }}/deploys/${{ steps.check_status.outputs.deploy_id }})
🔗 **GitHub Actions Job:** [View Job](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})

### 🛠️ Required Actions:
Expand All @@ -438,10 +455,11 @@ jobs:
---

**🔴 MERGING THIS PR IN ITS CURRENT STATE WILL BREAK PRODUCTION 🔴**
comment_tag: manual-build-comment

# Post timeout comment
- name: Post timeout comment
if: steps.poll_netlify.outputs.status == 'timeout'
if: steps.check_status.outputs.status == 'timeout'
uses: thollander/actions-comment-pull-request@v2
with:
message: |
Expand All @@ -454,7 +472,7 @@ jobs:
- Netlify is experiencing delays
- The build queue is backed up

🔗 **Netlify Deployment:** [View Deployment](https://app.netlify.com/sites/${{ secrets.NETLIFY_SITE_ID }}/deploys/${{ steps.poll_netlify.outputs.deploy_id }})
🔗 **Netlify Deployment:** [View Deployment](https://app.netlify.com/sites/${{ secrets.NETLIFY_SITE_ID }}/deploys/${{ steps.check_status.outputs.deploy_id }})
🔗 **GitHub Actions Job:** [View Job](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})

**Next steps:**
Expand All @@ -465,11 +483,11 @@ jobs:

**Expected preview URL (once ready):**
https://${{ steps.sanitize_branch.outputs.name }}--docs-website-netlify.netlify.app

comment_tag: manual-build-comment

# Fail the workflow if deployment failed
- name: Fail workflow on deployment failure
if: steps.poll_netlify.outputs.status == 'failure'
if: steps.check_status.outputs.status == 'failure'
run: |
echo "::error::Netlify deployment failed. This PR should not be merged."
exit 1
Loading