-
Notifications
You must be signed in to change notification settings - Fork 0
Publish the installer artifacts to the static host on release #35
Copy link
Copy link
Open
Labels
area: toolingReusable workflows, Gradle, templates, Renovate, and API tooling.Reusable workflows, Gradle, templates, Renovate, and API tooling.component: ciContinuous integration workflow or check behavior.Continuous integration workflow or check behavior.priority: P1High; important and should be handled in the current iteration.High; important and should be handled in the current iteration.status: blockedCannot move forward until an external dependency is resolved.Cannot move forward until an external dependency is resolved.type: featureNew user-facing or operator-facing capability.New user-facing or operator-facing capability.
Description
Activity
Metadata
Metadata
Assignees
Labels
area: toolingReusable workflows, Gradle, templates, Renovate, and API tooling.Reusable workflows, Gradle, templates, Renovate, and API tooling.component: ciContinuous integration workflow or check behavior.Continuous integration workflow or check behavior.priority: P1High; important and should be handled in the current iteration.High; important and should be handled in the current iteration.status: blockedCannot move forward until an external dependency is resolved.Cannot move forward until an external dependency is resolved.type: featureNew user-facing or operator-facing capability.New user-facing or operator-facing capability.
Parent
Epic: https://github.com/JorisJonkers-dev/fleet-infra/issues/224 (fleet-infra)
What to build
Every released installer artifact present on the estate's public static host,
published by CI, and proven present by fetching it back.
Scope corrected 2026-09-14. #40 makes
setup-workstation.shthe singleinstaller and retires
install.sh, so publishinginstall.shandinstall-agents.shwould put a script on the public host that is about todie. The artifacts are:
installer/setup-workstation.sh, generated fromregistry/estate-tooling.yaml, which has never been served at all;curl | bashwith no checkout — Make setup-workstation.sh a true superset and retire install.sh #40'sKIT_ROOTgap is fixed by fetchingthis bundle rather than resolving a path from
$0.The order is #40, then this ticket, then #36.
Two estate rules shape the workflow:
not prove the object is readable. Verify by fetching the published URL
back and comparing the version token inside it against the release.
carrying
if: ${{ !cancelled() }}so a single failure still surfaces therest. Splitting three uploads across three jobs triples the bill for
identical work.
Credentials are the Garage access key from the bucket ticket, held as Actions
secrets. Nothing in the published artifacts is secret - that is the premise -
but the write credential is.
Acceptance criteria
curl -fsSL https://<host>/setup-workstation.sh | head -1returns thescript, with no
Authorizationheader.published it, checked by CI and not by eye.
installs from it.
install.shandinstall-agents.share not published.verifies.
Blocked by