Skip to content

fix(netlify): trigger master deploys on actual source changes#3195

Merged
drewstone merged 1 commit intodevelopfrom
fix/netlify-deploy-trigger
May 8, 2026
Merged

fix(netlify): trigger master deploys on actual source changes#3195
drewstone merged 1 commit intodevelopfrom
fix/netlify-deploy-trigger

Conversation

@drewstone
Copy link
Copy Markdown
Contributor

The previous ignore rule across all three apps gated master deploys on apps/<app>/CHANGELOG.md only. Result: every meaningful push since the last release-PR was silently cancelled by Netlify with 'Canceled build due to no content change'.

Damage report

  • app.tangle.tools — stuck on the v0.1.7 release from August 2025. ~25 PRs of iframe + perf + design overhaul + dep cleanup never reached production. Manually rebuilt today.
  • leaderboard.tangle.tools — never had a successful deploy at all. Manually rebuilt today.
  • cloud.tangle.tools — accidentally avoided the bug because in feat(prod): enable iframe rendering in netlify.toml #3184 the ignore rule got pulled INTO the [context.branch-deploy.environment] table, parsing as just an env var named ignore instead of a build directive. So cloud deployed on every master push regardless. Lucky.

What this PR ships

  1. tangle-cloud: moves ignore back to [build] where it belongs, and uses the new rule below
  2. tangle-dapp + leaderboard: replace CHANGELOG-only check with source-tree check

New rule

ignore = "[ \"\$BRANCH\" != \"master\" ] && exit 1 || \\
  git diff --quiet \$CACHED_COMMIT_REF \$COMMIT_REF -- \\
    apps/<app>/ libs/ package.json yarn.lock tsconfig.base.json nx.json \\
  && exit 0 || exit 1"

Master builds when ANY of:

  • apps/<app>/ → own source (CHANGELOG.md inside, so release-PRs still trigger)
  • libs/ → shared libs the app consumes
  • package.json → dep changes
  • yarn.lock → catches lockfile-only fixes like fix(deps): re-sync yarn.lock with package.json #3191
  • tsconfig.base.json + nx.json → build-graph config changes

The previous `ignore` rule across all three apps gated master deploys
on `apps/<app>/CHANGELOG.md` changes only. The release-PR convention
assumed every meaningful push to master would also bump CHANGELOG.md
— in practice it didn't, so the master backlog piled up silently:

  - app.tangle.tools was stuck on the v0.1.7 release from August 2025.
    Every PR since then (iframe feature, perf overhaul, design polish,
    sandbox-ui bump, dead-code purges, ~25 PRs total) was deployed to
    Netlify, then immediately cancelled with 'Canceled build due to no
    content change' because no CHANGELOG line moved.
  - leaderboard.tangle.tools never had a successful deploy at all.
  - cloud.tangle.tools accidentally avoided the bug entirely because
    in PR #3184 (iframe env var) the ignore rule got pulled INSIDE
    the [context.branch-deploy.environment] table, where it parsed as
    just an env var named 'ignore' instead of a build directive. So
    cloud has been deploying on every master push regardless. Lucky
    accident, but worth fixing.

This change:

1. tangle-cloud: moves `ignore` back to [build] (out of the env
   block where my earlier PR misplaced it), and updates the rule to
   the new pattern below.

2. tangle-dapp + leaderboard: replaces the CHANGELOG-only check with
   a source-tree check.

The new rule for each app:

  ignore = '[ "$BRANCH" != "master" ] && exit 1 || \
    git diff --quiet $CACHED_COMMIT_REF $COMMIT_REF -- \
      apps/<app>/ libs/ package.json yarn.lock tsconfig.base.json nx.json \
    && exit 0 || exit 1'

Builds master when ANY of those paths changed:
  - apps/<app>/  → app's own source (CHANGELOG.md is inside this, so
                   release-PR convention still triggers a build)
  - libs/        → shared libs that the app actually consumes
  - package.json → workspace dependency manifest
  - yarn.lock    → resolved versions (catches lockfile-only fixes like
                   #3191 that production needs)
  - tsconfig.base.json + nx.json → build-graph config changes
@drewstone drewstone requested a review from AtelyPham as a code owner May 8, 2026 09:46
@netlify
Copy link
Copy Markdown

netlify Bot commented May 8, 2026

Deploy Preview for tangle-cloud ready!

Name Link
🔨 Latest commit 5ac73e6
🔍 Latest deploy log https://app.netlify.com/projects/tangle-cloud/deploys/69fdb10c49b9af00091c3b90
😎 Deploy Preview https://deploy-preview-3195--tangle-cloud.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@drewstone drewstone merged commit f9801eb into develop May 8, 2026
6 of 8 checks passed
@netlify
Copy link
Copy Markdown

netlify Bot commented May 8, 2026

Deploy Preview for tangle-dapp ready!

Name Link
🔨 Latest commit 5ac73e6
🔍 Latest deploy log https://app.netlify.com/projects/tangle-dapp/deploys/69fdb10c7eec790008503c49
😎 Deploy Preview https://deploy-preview-3195--tangle-dapp.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link
Copy Markdown

netlify Bot commented May 8, 2026

Deploy Preview for tangle-leaderboard ready!

Name Link
🔨 Latest commit 5ac73e6
🔍 Latest deploy log https://app.netlify.com/projects/tangle-leaderboard/deploys/69fdb10cdd2a630008ab778e
😎 Deploy Preview https://deploy-preview-3195--tangle-leaderboard.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@drewstone drewstone deleted the fix/netlify-deploy-trigger branch May 8, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant