CI/CD¶
GitLab runs builds, packaging, security checks and documentation deployment
from the Codeberg v3 source mirror. The authoritative job conditions and
commit-message controls are in .gitlab-ci.yml.
Validating a change¶
GitLab CI does not provide a routine go test ./... or golangci-lint
job. Run these checks locally. The credentialed Playwright suite calls the
real pixiv API. Only protected refs can receive the protected token;
missing or invalid credentials fail the suite. See testing.
The style-lint job checks shell formatting with
pinned shfmt and authored text with Opengrep. The usual binary build and
publication jobs run on the default branch or on tags, not on ordinary feature
branches. A green pipeline on a development branch is therefore not a
substitute for a local build/test.
Before interpreting an absent or outdated pipeline, compare the v3 commit
hash on Codeberg and
GitLab. The mirror may lag.
Publishing and documentation¶
The default-branch pipeline publishes development artifacts under next;
Git tags publish release versions and latest. Image publication includes
signing and SBOM attestation. Do not create a tag merely to get CI coverage.
Documentation jobs run for the paths listed in .docs-paths on the default
branch, or for manually launched GitLab web pipelines. Changing only
AGENTS.md does not trigger default-branch documentation deployment.
A manual web pipeline also bypasses the normal [skip docs] job rule.
Building OCI images locally¶
From a Git checkout, Buildx embeds the Git revision in the executable. Enable Buildx's native Git labels to also record the revision and repository URL in the image config:
| Bash | |
|---|---|
The Docker build requires Git history; a source archive without .git is not
a supported build context. GitLab's packaging job instead labels images using
CI_COMMIT_SHA and embeds VCS data when it compiles the binaries.
Run scripts/test-oci-vcs.sh to verify both packaging paths, native builds,
and clean/dirty Git metadata in the actual image binaries and OCI labels.
Commit-message controls¶
Consult the workflow.rules, .build-and-publish-rules,
.docs-rules and .build-base-image.rules
before relying on a marker. In particular:
[skip ci]disables a pipeline entirely;[skip build]suppresses binary builds and publication.[skip docs]suppresses normal default-branch documentation jobs but not jobs added by the manual web-pipeline rule.[rebuild CI images]requests all CI builder-image jobs.- The individual
[rebuild …]image markers currently do not work:.build-base-image.rulesuses/\[rebuild $IMAGE_SUFFIX\]/. GitLab does not expand variables in regex patterns.
The CI configuration is the source of truth for the complete set of supported markers; do not maintain a parallel option list here.