Skip to content

feat(raptor-register): a raptor action to replace facetsctl-register - #15

Open
anujhydrabadi wants to merge 2 commits into
masterfrom
feat/raptor-register
Open

feat(raptor-register): a raptor action to replace facetsctl-register#15
anujhydrabadi wants to merge 2 commits into
masterfrom
feat/raptor-register

Conversation

@anujhydrabadi

Copy link
Copy Markdown
Contributor

facetsctl-register is a Docker action on docker://facetscloud/facetsctl:latest running facetsctl v2 — the legacy write path, which registers a build with no routing rule attached. It is also broken as written: it reads secrets.* from inside the action, which is not a context an action can read, so its credentials arrive empty. It is deprecated here rather than fixed.

raptor-register is a composite action — raptor publishes no image, so there is nothing to run a Docker action on.

- uses: Facets-cloud/github-actions/raptor-register@v1with:
control_plane_url: ${{ secrets.FACETS_CP_URL }}username: ${{ secrets.FACETS_USERNAME }}token: ${{ secrets.FACETS_TOKEN }}project: my-projectartifact: my-project-apiimage: my.registry.example.com/my-project/api:${{ github.sha }}git_ref: ${{ github.ref_name }}

The target is explicit

git_ref lets the project's routing rules place the build; environment and release_stream name the target outright. Exactly one is required — zero or two is an error, not something the action picks for the caller.

Two things it does not inherit

  • Credentials are inputs, not an implicit read of secrets.*, and they are scoped to the single step that invokes raptor — so the token is not exported into the rest of the caller's job. (Same pattern as module-ci-action.)
  • registration_type, registry and description are gone. The first is implied by which target input you pass; the second is wherever you pushed, which image already names; the third is not carried on a build registration.

The README maps every old input to its replacement, and says where to read an artifact name from — it is the CI integration, not the resource, and the two differ often enough to be worth stating (raptor get resources -p <project> -o wide, the ARTIFACT column).

Part of the facetsctl retirement.

🤖 Generated with Claude Code

anujhydrabadiand others added 2 commits August 20, 2026 16:44
facetsctl-register is a Docker action on facetscloud/facetsctl:latest that
runs facetsctl v2 — the legacy write path, which registers a build with no
routing rule attached. It also reads secrets.* from inside the action, which
is not a context an action can read, so its credentials arrive empty: it is
deprecated here rather than fixed.
raptor-register is a composite action, because raptor publishes no image. It
takes the target explicitly — git_ref to let the project's routing rules
place the build, or environment / release_stream to name the target outright
— and fails when zero or more than one is set, rather than picking for the
caller.
Two things it does not inherit:
- Credentials are inputs, not an implicit read of secrets.*. The caller
passes them, and they are scoped to the single step that invokes raptor, so
the token is not exported into the rest of the caller's job.
- `registration_type`, `registry` and `description` are gone. The first is
implied by which target input you pass; the second is wherever you pushed,
which `image` already names; the third is not carried on a build
registration.
The README maps every old input to its replacement, and says where to read an
artifact name from — it is the CI integration, not the resource, and the two
differ often enough to be worth stating.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A build registered without its registry lands under "provided". A resource that
asks for its image as spec.release.build {name, artifactory} then finds nothing,
because the module resolves that shape as all_artifactories[registry][name], and
it deploys the literal string "NOT_FOUND". The pod sits in InvalidImageName, and
nothing failed earlier to warn anyone. control-plane hit exactly this in
facetsdemo.
The action now takes a `registry` input and passes it to `set artifact-uri`, which
needs raptor v0.1.98 or later (raptor#373). The input is optional, because a
resource that uses the artifact-expression shape does not need it.
The migration table also stops telling readers to drop facetsctl's `registry`
input. That was wrong: the flag is load-bearing for one of the two shapes.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@anujhydrabadi