From 2afa8928a5903dd5950a644fcac959a74a3ab5be Mon Sep 17 00:00:00 2001 From: James Maes Date: Sun, 8 Nov 2026 08:37:22 -0600 Subject: [PATCH 1/4] ci: docs checks and conformance tests on Gitea The repository's own gates had no runner since the GitHub-hosted ci.yml cannot run on Gitea. Port them to the shared ci-workflows: - lint.yaml: markdownlint (repo config), yamllint over every YAML file, and the offline lychee internal-link check (pinned, sha256); - windows.yaml: the conformance checker self-test, fuzzing, package tests and the static self-conformance check. .yamllint.yaml keeps every default rule except line length, which K22-CODE-08 leaves unlimited. Co-Authored-By: Claude Opus 5.5 --- .gitea/workflows/build.yaml | 31 +++++++++++++++++++++++++++++++ .yamllint.yaml | 6 ++++++ 2 files changed, 37 insertions(+) create mode 100644 .gitea/workflows/build.yaml create mode 100644 .yamllint.yaml diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..d049e08 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,31 @@ +# Gitea CI for the standards repository. The .github workflows are the reusable +# GitHub gates this repository publishes; Gitea does not run them. +name: build +on: + push: +jobs: + docs: + uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/lint.yaml@small-workflows + with: + markdownlint: '**/*.md' + yamllint: | + **/*.yml + **/*.yaml + # Internal links and anchors between documents (offline: deterministic). + commands: | + LYCHEE_VERSION=0.24.2 + LYCHEE_SHA256=1f4e0ef7f6554a6ed33dd7ac144fb2e1bbed98598e7af973042fc5cd43951c9a + archive=lychee-x86_64-unknown-linux-gnu.tar.gz + mkdir -p /tmp/lychee + curl -fsSLo "/tmp/lychee/$archive" "https://github.com/lycheeverse/lychee/releases/download/lychee-v$LYCHEE_VERSION/$archive" + (cd /tmp/lychee && echo "$LYCHEE_SHA256 $archive" | sha256sum --check --strict && tar -xzf "$archive") + /tmp/lychee/lychee-x86_64-unknown-linux-gnu/lychee --offline --include-fragments --no-progress './**/*.md' + conformance: + uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/windows.yaml@v1 + with: + commands: | + pwsh -NoProfile -File ./tools/Test-RepoConformance.ps1 -SelfTest + pwsh -NoProfile -File ./tools/Test-RepoConformance.Fuzz.ps1 -Seed 22023 -Iterations 1000 + pwsh -NoProfile -File ./tools/Test-RepoConformance.Fuzz.ps1 -Seed 99173 -Iterations 1000 + pwsh -NoProfile -File ./tools/Test-StandardsPackage.ps1 + pwsh -NoProfile -File ./tools/Test-RepoConformance.ps1 -LocalPath . -StaticOnly diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 0000000..26d93c9 --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,6 @@ +# yamllint configuration for the standards repository: every default rule except +# line length, which K22-CODE-08 leaves unlimited (pinned action SHAs and URLs +# run long). +extends: default +rules: + line-length: disable -- 2.54.0 From 7533c8888c3f50fab52f50812c4cd2a08b811bfc Mon Sep 17 00:00:00 2001 From: James Maes Date: Sun, 8 Nov 2026 08:43:09 -0600 Subject: [PATCH 2/4] ci: musl lychee build; name the repository for the static conformance check The gnu lychee needs glibc 2.38, newer than the lint image's. The runner checks out into a directory named after the runner user, so the static check must be told the repository name (K22-REPO-42 looks it up in MAINTAINERS.md). Co-Authored-By: Claude Opus 5.5 --- .gitea/workflows/build.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index d049e08..052525f 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -11,15 +11,16 @@ jobs: yamllint: | **/*.yml **/*.yaml - # Internal links and anchors between documents (offline: deterministic). + # Internal links and anchors between documents (offline: deterministic). The + # static musl build: the image's glibc is older than the gnu build needs. commands: | LYCHEE_VERSION=0.24.2 - LYCHEE_SHA256=1f4e0ef7f6554a6ed33dd7ac144fb2e1bbed98598e7af973042fc5cd43951c9a - archive=lychee-x86_64-unknown-linux-gnu.tar.gz + LYCHEE_SHA256=73657a111819a30c47c08352896796f23d64e4eb2b3ed39b6d32149241566fc5 + archive=lychee-x86_64-unknown-linux-musl.tar.gz mkdir -p /tmp/lychee curl -fsSLo "/tmp/lychee/$archive" "https://github.com/lycheeverse/lychee/releases/download/lychee-v$LYCHEE_VERSION/$archive" (cd /tmp/lychee && echo "$LYCHEE_SHA256 $archive" | sha256sum --check --strict && tar -xzf "$archive") - /tmp/lychee/lychee-x86_64-unknown-linux-gnu/lychee --offline --include-fragments --no-progress './**/*.md' + /tmp/lychee/lychee-x86_64-unknown-linux-musl/lychee --offline --include-fragments --no-progress './**/*.md' conformance: uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/windows.yaml@v1 with: @@ -28,4 +29,4 @@ jobs: pwsh -NoProfile -File ./tools/Test-RepoConformance.Fuzz.ps1 -Seed 22023 -Iterations 1000 pwsh -NoProfile -File ./tools/Test-RepoConformance.Fuzz.ps1 -Seed 99173 -Iterations 1000 pwsh -NoProfile -File ./tools/Test-StandardsPackage.ps1 - pwsh -NoProfile -File ./tools/Test-RepoConformance.ps1 -LocalPath . -StaticOnly + pwsh -NoProfile -File ./tools/Test-RepoConformance.ps1 -Repository KofTwentyTwo/standards -LocalPath . -StaticOnly -- 2.54.0 From c16db56477aa2c7d20b6186c1708f990dc67d131 Mon Sep 17 00:00:00 2001 From: James Maes Date: Sun, 8 Nov 2026 08:56:28 -0600 Subject: [PATCH 3/4] ci: call the shared workflow from ci-workflows main Co-Authored-By: Claude Opus 5.5 --- .gitea/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 052525f..3ad5b30 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -5,7 +5,7 @@ on: push: jobs: docs: - uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/lint.yaml@small-workflows + uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/lint.yaml@main with: markdownlint: '**/*.md' yamllint: | -- 2.54.0 From 206f409f6f4458ec3cdba64575206d9a28172890 Mon Sep 17 00:00:00 2001 From: James Maes Date: Sun, 8 Nov 2026 09:00:40 -0600 Subject: [PATCH 4/4] ci: pin the shared workflow to v1 Co-Authored-By: Claude Opus 5.5 --- .gitea/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 3ad5b30..c46939e 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -5,7 +5,7 @@ on: push: jobs: docs: - uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/lint.yaml@main + uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/lint.yaml@v1 with: markdownlint: '**/*.md' yamllint: | -- 2.54.0