ci: remove container publication workflows
This commit is contained in:
1 parent
cfb4c36569
commit
fff284aaa0
4 files changed
+2
-195
No files matched your search
@@ -250,9 +250,7 @@ bash cms update
|
||||
|
||||
The updater pulls the configured Git upstream, loads `.docker-install`, uses the
|
||||
matching application/migration images and verifies the running release locally
|
||||
and at the saved public URL. If publication for the new commit is still running,
|
||||
it stops before replacing the current container; run the same command after CI
|
||||
succeeds. Existing application rollback remains available on a failed cutover;
|
||||
and at the saved public URL. Existing application rollback remains available on a failed cutover;
|
||||
database migrations are not reversed.
|
||||
|
||||
`bash cms install --configure-only` saves configuration without preparing runtime
|
||||
@@ -261,67 +259,7 @@ committed or sent in Docker build contexts. Existing users of
|
||||
`bash scripts/docker-update.sh` retain the previous behavior when no wizard
|
||||
profile exists; explicit `CMS_IMAGE_REPOSITORY`/`CMS_PUBLIC_URL` overrides still work.
|
||||
|
||||
To publish from Gitea:
|
||||
|
||||
Gitea packages belong to an account or organization, independently of repository
|
||||
permissions. Publication defaults to the lowercase `CONTAINER_REGISTRY_USER`
|
||||
namespace, so a Simo token publishes `simo/epicnext-cms` even though the Git
|
||||
repository belongs to remco. Set the Actions variable
|
||||
`CONTAINER_REGISTRY_NAMESPACE` only to override this (for example, an organization
|
||||
where the token account has package write access). Keep the login username and
|
||||
token from the same account. Changing namespace also changes the image URL used
|
||||
by installations; existing remco image tags are not moved automatically.
|
||||
|
||||
1. In the repository's Actions secrets, configure `CONTAINER_REGISTRY_USER` and
|
||||
`CONTAINER_REGISTRY_TOKEN`. Use a Gitea access token with package read/write
|
||||
permission belonging to the login account. For the Simo token, set
|
||||
`CONTAINER_REGISTRY_USER=Simo`; the default package namespace will be `simo`.
|
||||
2. Every push to `main` or `master` automatically builds and publishes the images
|
||||
after the CI checks and production deployment succeed. Pull requests do not
|
||||
publish images. The publication job builds from committed source only and checks
|
||||
the same application image with two runtime configurations before pushing.
|
||||
Missing registry secrets fail the publication job explicitly; they do not undo
|
||||
an already successful production deployment. No `latest` tag is moved.
|
||||
**Publish portable container** remains available for manual retries on the
|
||||
commit/branch to distribute, without redeploying production.
|
||||
3. The images are `<gitea-host>/<owner>/<repository-lowercase>:<full-commit>` and
|
||||
`:<full-commit>-migrations`. Only the application image runs the website; the
|
||||
migrations image is used temporarily for the matching database migrations.
|
||||
|
||||
Publication uses checksum-pinned regctl v0.11.6 with 8 MiB blob requests to
|
||||
avoid monolithic layer uploads exceeding reverse-proxy limits. Both images are
|
||||
exported and uploaded sequentially; temporary archives and credentials are removed
|
||||
on exit. The runner needs curl, sha256sum and temporary disk space for one Docker
|
||||
image archive plus its extracted OCI layout. The remote image config digest is checked against the locally normalized archive
|
||||
after each upload. A proxy must still allow the OCI registry PATCH/PUT endpoints.
|
||||
|
||||
For this repository the image base is
|
||||
`gitlab.epicnabbo.nl/simo/epicnext-cms`. Package access is controlled by Gitea.
|
||||
For private packages, run `docker login gitlab.epicnabbo.nl` on the installation
|
||||
with a token that can read packages. Then update with:
|
||||
|
||||
```bash
|
||||
CMS_IMAGE_REPOSITORY=gitlab.epicnabbo.nl/simo/epicnext-cms \
|
||||
CMS_PUBLIC_URL=https://your-hotel.example \
|
||||
bash scripts/docker-update.sh
|
||||
```
|
||||
|
||||
The updater pulls the configured Git upstream and requires both images for that
|
||||
exact commit. A missing image or failed login stops before replacing the running
|
||||
CMS. Local builds remain the default when `CMS_IMAGE_REPOSITORY` is unset. Both
|
||||
paths retain the existing image/HTTP checks and automatic application rollback.
|
||||
Migration secrets are mounted read-only for the temporary migration container;
|
||||
they are never copied into its image. Registry images currently target the Linux
|
||||
architecture of the self-hosted build runner; this is not a multi-architecture release.
|
||||
|
||||
The portability gate checks release identity, runtime avatar/badge routing and
|
||||
absence of installation environment files in the application image. It uses an
|
||||
unreachable fixture database and does not replace a full live database/site smoke
|
||||
test. See `scripts/verify-portable-image.mjs`. Production deployment remains verified
|
||||
separately by the existing CI workflow.
|
||||
|
||||
References: [Gitea container registry](https://docs.gitea.com/usage/packages/container/)
|
||||
and [Next.js runtime environment variables](https://nextjs.org/docs/app/guides/self-hosting).
|
||||
Container publication is disabled. CI builds, checks and deploys the CMS, but it does not log in to a registry or upload container images.
|
||||
|
||||
### Diagnose an update that is not visible
|
||||
|
||||
|
||||
Reference in new issue
Block a user