Skip to content

ci: replace jetify-com/devbox-install-action with our own action#1303

Open
abueide wants to merge 1 commit into
masterfrom
fix-blocked-devbox-install-action
Open

ci: replace jetify-com/devbox-install-action with our own action#1303
abueide wants to merge 1 commit into
masterfrom
fix-blocked-devbox-install-action

Conversation

@abueide

@abueide abueide commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Org policy blocks jetify-com/devbox-install-action outright - all actions must come from a GitHub-owned or enterprise-owned repository, and this is neither.

Consolidates the previous two-step "Install devbox" + "Route Nix/devbox packages through Artifactory" sequence (from #1302) into one composite action (install-devbox) that does the whole bootstrap:

  • Installs Nix via the official single-user installer script (a plain run: step, not a third-party uses: - the same distinction that made the earlier codecov/codecov-action fix work)
  • Configures the Artifactory substituter
  • Builds/installs the patched devbox directly, rather than installing a stock binary first and overwriting it afterward

Verified

  • Checked every workflow in this repo (ci.yml, release.yml, e2e-tests.yml, publish-e2e-cli.yml) - no other non-GitHub-owned action references exist; everything else is already actions/* and SHA-pinned
  • devbox run check passes locally (70 suites, 492 tests)

Test plan

  • Confirm a real CI run succeeds without the blocked-action error

Org policy blocks it outright - all actions must come from a
GitHub-owned or enterprise-owned repository, and this is neither.

Consolidates the previous two-step "Install devbox" +
"Route Nix/devbox packages through Artifactory" sequence into one
composite action (install-devbox) that does the whole bootstrap:
installs Nix via the official single-user installer script (a plain
run: step, not a third-party uses: - the same distinction that made
the earlier codecov/codecov-action fix work), configures the
Artifactory substituter, then builds/installs the patched devbox
directly, rather than installing a stock binary first and overwriting
it afterward.

No other workflow in this repo references a non-GitHub-owned action -
checked ci.yml, release.yml, e2e-tests.yml, and publish-e2e-cli.yml;
everything else is already actions/* and SHA-pinned.
abueide added a commit that referenced this pull request Jul 22, 2026
* ci: release without devbox/Nix as a stopgap

release.yml's Install devbox step still uses jetify-com/devbox-install-action,
which is blocked outright by org policy (third-party action) - #1303 fixes
that properly, but it and the underlying Nix/Artifactory work (segmentio
analytics-react-native #1301/#1302, twilio-internal
artifactory-cloud-twilio-config #11/#12) aren't merged yet, and releases
are blocked in the meantime.

Removes devbox from every job in release.yml and runs the exact same
commands devbox.json already ran, directly:
- ci:install / release / release-dry-run / update-apps scripts translated
  1:1 to their underlying yarn invocations
- actions/setup-node (node 22, matching devbox.json's pin) + corepack
  enable in place of devbox's nix-provided yarn-berry, to get the
  packageManager-pinned yarn@4.1.0
- Artifactory OIDC Auth step is untouched - that's about npm/yarn package
  curation, unrelated to the devbox/Nix bootstrap problem

This overlaps with #1303: once devbox/Nix + Artifactory is fully working
and merged, this stopgap should be reconciled or reverted rather than
left alongside it long-term.

Not verified end-to-end (no way to safely test corepack/yarn locally
without touching this machine's global Node setup) - the intended next
step is a real `dry-run` release via workflow_dispatch to confirm before
trusting it for beta/production.

* ci: port ci.yml to the same devbox-free checks as release.yml

ci.yml's Lint + Build + Test / Commitlint jobs both used
jetify-com/devbox-install-action, confirmed via run history to fail with
startup_failure on every single run going back weeks (the blocked-action
policy, not a code problem) - this was blocking every PR check on the
repo, not just releases.

Ports both jobs to the exact same commands release.yml's own ci job
already uses (added in the previous commit): actions/setup-node + corepack
enable + plain yarn invocations, no devbox. The two "Lint + Build + Test"
jobs are now identical, so release.yml's needs: [ci] gate is the same
check PRs already have to pass.

Also disables e2e-tests.yml's push/pull_request triggers for now - unlike
ci.yml, this one doesn't use devbox at all and never hit startup_failure;
its recent runs show stuck queued/cancelled instead, a separate,
still-unresolved runner-availability issue. Left as workflow_dispatch-only
until that's confirmed healthy, rather than porting it to "fix" a problem
it doesn't actually have.
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