Pipeline: hadolint (no continue-on-error) → build-test
hadolint: uses dockerfile: Dockerfile param
build-test: builds ci-image, runs tests
Why
Aligns docker-dynhost with the standardized Gitea Actions workflow pattern used across the perso org (htpasswd, offlineimap, etc.). Removes the named-steps style in favor of the leaner # vX comment pattern and consistent pipeline structure.
Transforms all 4 Gitea Actions workflow files to match the standard pattern from perso/htpasswd.
### Changes
**main.yaml** — `push` to `master`
- Renamed to `Main Release`
- Pipeline: `hadolint` → `test` → `build` (no push) → `tag`
- `hadolint`: uses `dockerfile: Dockerfile` param, continues on error
- `test`: builds `ci-image` with buildx setup, runs tests
- `build`: builds `jcabillot/docker-dynhost:${{ github.sha }}` without pushing
- `tag`: checkout with `fetch-depth: 0`, configures git auth with `SA_TOKEN_ACTION_PUSH_TAGS`, semver tag via `anothrNick/github-tag-action`
**cron.yaml** — Nightly rebuild
- Preserves original schedule: `0 0 * * *`
- Pipeline: `hadolint` → `test` → `build-push`
- `build-push`: gets latest semver tag, metadata produces `$TAG-latest` only (no `:latest`)
- Login via `DOCKERHUB_USERNAME`/`DOCKERHUB_TOKEN` secrets
**tag.yaml** — Tag release
- Pipeline: `hadolint` → `test` → `build-push`
- `build-push`: metadata produces `type=ref,event=tag` + `type=ref,event=tag,suffix=-latest`
- Uses `pull: true` on build-push for cache
- Login via Docker Hub secrets
**pr.yaml** — PR checks
- Scoped to `pull_request: branches: [master]`
- Pipeline: `hadolint` (no `continue-on-error`) → `build-test`
- `hadolint`: uses `dockerfile: Dockerfile` param
- `build-test`: builds `ci-image`, runs tests
### Why
Aligns docker-dynhost with the standardized Gitea Actions workflow pattern used across the perso org (htpasswd, offlineimap, etc.). Removes the named-steps style in favor of the leaner `# vX` comment pattern and consistent pipeline structure.
Transform all 4 workflow files to match the standard pattern used by
perso/htpasswd (and offlineimap):
main.yaml:
- Rename to 'Main Release'
- hadolint (continue-on-error, dockerfile param) → test (build ci-image, run tests)
→ build (no push, just build target image) → tag (fetch-depth 0, git auth with
SA_TOKEN_ACTION_PUSH_TAGS, semver tagging)
cron.yaml:
- Keep original schedule '0 0 * * *'
- hadolint → test → build-push (get-latest-tag, metadata with -latest
only, no :latest tag)
tag.yaml:
- hadolint → test → build-push (type=ref,event=tag + suffix=-latest)
pr.yaml:
- hadolint (no continue-on-error, add dockerfile param) → build-test
- Scope to pull_request branches: [master]
- Use ci-image pattern with buildx setup
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Transforms all 4 Gitea Actions workflow files to match the standard pattern from perso/htpasswd.
Changes
main.yaml —
pushtomasterMain Releasehadolint→test→build(no push) →taghadolint: usesdockerfile: Dockerfileparam, continues on errortest: buildsci-imagewith buildx setup, runs testsbuild: buildsjcabillot/docker-dynhost:${{ github.sha }}without pushingtag: checkout withfetch-depth: 0, configures git auth withSA_TOKEN_ACTION_PUSH_TAGS, semver tag viaanothrNick/github-tag-actioncron.yaml — Nightly rebuild
0 0 * * *hadolint→test→build-pushbuild-push: gets latest semver tag, metadata produces$TAG-latestonly (no:latest)DOCKERHUB_USERNAME/DOCKERHUB_TOKENsecretstag.yaml — Tag release
hadolint→test→build-pushbuild-push: metadata producestype=ref,event=tag+type=ref,event=tag,suffix=-latestpull: trueon build-push for cachepr.yaml — PR checks
pull_request: branches: [master]hadolint(nocontinue-on-error) →build-testhadolint: usesdockerfile: Dockerfileparambuild-test: buildsci-image, runs testsWhy
Aligns docker-dynhost with the standardized Gitea Actions workflow pattern used across the perso org (htpasswd, offlineimap, etc.). Removes the named-steps style in favor of the leaner
# vXcomment pattern and consistent pipeline structure.Transform all 4 workflow files to match the standard pattern used by perso/htpasswd (and offlineimap): main.yaml: - Rename to 'Main Release' - hadolint (continue-on-error, dockerfile param) → test (build ci-image, run tests) → build (no push, just build target image) → tag (fetch-depth 0, git auth with SA_TOKEN_ACTION_PUSH_TAGS, semver tagging) cron.yaml: - Keep original schedule '0 0 * * *' - hadolint → test → build-push (get-latest-tag, metadata with -latest only, no :latest tag) tag.yaml: - hadolint → test → build-push (type=ref,event=tag + suffix=-latest) pr.yaml: - hadolint (no continue-on-error, add dockerfile param) → build-test - Scope to pull_request branches: [master] - Use ci-image pattern with buildx setup