Skip to content

Automate releases - #101

Merged
eliias merged 1 commit into
masterfrom
hannesmoser/inf-3414-automate-linear-zapier-releases
Aug 18, 2026
Merged

eliias merged 1 commit into
masterfrom
hannesmoser/inf-3414-automate-linear-zapier-releases

Conversation

@eliias

@eliias eliias commented Aug 12, 2026 •

Copy link
Copy Markdown
Contributor

Publishing this app is manual today, and the repo drifted from what Zapier runs: #99 had to reconstruct 4.10.0 through 4.14.0 out of the published app and back into git.

Bump the minor version and write the changelog entry in the same PR as the code. CI fails the PR when code that reaches Zapier changes without that. Merging uploads that version to Zapier and promotes it, so new Zaps get it. Existing Zaps keep the version they were built on, because nothing migrates them.

flowchart TD
    pr([Pull request]) --> ci
    merge{{Merge to master}} --> ci

    subgraph nodejs[nodejs.yml]
        ci[Test, validate the schema, require a version bump]
    end

    ci -->|on a branch| ready([Ready to merge])
    ready --> merge
    ci -->|on master| ask

    subgraph release[release.yml]
        ask{Is this version at Zapier?}
        stop([Stop])
        upload[Upload]
        promote[Promote and poll]
    end

    ask -->|yes| stop
    ask -->|no| upload
    upload --> promote
    promote --> live([New Zaps get it, existing Zaps keep their version])
Loading

The release workflow asks Zapier which versions it holds rather than inferring from the push, so a release that never arrived is retried on the next push to master, or from the Actions tab. That is also why there is one workflow here and not three.

Check the promote step. It passes --yes, without which the CLI waits on a prompt nobody can answer on a runner, and that flag also accepts Zapier's non-blocking pre-check warnings.

The repo moves to Node 22, because the Zapier CLI that CI installs pulls dependencies that refuse to install below Node 20. Zapier still runs this app on Node 18, and will until we move to core 17.

  • Add the ZAPIER_DEPLOY_KEY secret, taken from the shared Zapier account in 1Password, before merging. The release workflow fails on its first run without it.

Towards INF-3414

@eliias eliias self-assigned this Aug 12, 2026
@linear-code

linear-code Bot commented Aug 12, 2026

Copy link
Copy Markdown

INF-3414

@eliias
eliias force-pushed the hannesmoser/inf-3414-automate-linear-zapier-releases branch 10 times, most recently from b70e820 to b9a7e83 Compare August 17, 2026 09:35
@eliias
eliias marked this pull request as ready for review August 17, 2026 10:26
@eliias

eliias commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@eliias
eliias requested a review from delicb August 17, 2026 11:24

@delicb delicb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall, left some inline comments.

Comment thread .nvmrc
Comment thread scripts/versionGate.js Outdated
Publishing this app is manual today, and the repo drifted from what Zapier
runs: #99 had to reconstruct 4.10.0 through 4.14.0 out of the published app
and back into git.

Bump the minor version and write the changelog entry in the same PR as the
code. CI fails the PR when code that reaches Zapier changes without that.
Merging uploads that version to Zapier and promotes it, so new Zaps get it.
Existing Zaps keep the version they were built on, because nothing migrates
them.

The release workflow asks Zapier which versions it holds rather than
inferring from the push, so a release that never arrived is retried on the
next push to master, or from the Actions tab. That is also why there is one
workflow here and not three.

Check the promote step. It passes --yes, without which the CLI waits on a
prompt nobody can answer on a runner, and that flag also accepts Zapier's
non-blocking pre-check warnings.

The repo moves to Node 22, because the Zapier CLI that CI installs pulls
dependencies that refuse to install below Node 20. Zapier still runs this app on Node 18,
and will until we move to core 17.

Towards INF-3414
@eliias
eliias force-pushed the hannesmoser/inf-3414-automate-linear-zapier-releases branch from b9a7e83 to 5601e6f Compare August 17, 2026 12:15

eliias commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

@delicb I'd like to do a test run this week, do you mind babysitting this with me?

@eliias
eliias merged commit e53b28e into master Aug 18, 2026
2 checks passed

delicb commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Sorry, I missed this comment. Yes, of course, count on me.

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.

2 participants