maintainer-ci-ctest
Maintainer-focused tool for managing CI/CD infrastructure, CTest suites, release packaging, and security automation for iccDEV.
Install
mkdir -p .claude/skills/maintainer-ci-ctest && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16591" && unzip -o skill.zip -d .claude/skills/maintainer-ci-ctest && rm skill.zipInstalls to .claude/skills/maintainer-ci-ctest
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Maintainer workflow for scoping and updating iccDEV CI, CTest, CPack, sanitizer, workflow, and release-gate infrastructure.Key capabilities
- →Scope and update iccDEV CI infrastructure
- →Scope and update CTest infrastructure
- →Scope and update CPack and release packaging
- →Scope and update sanitizer helper policy
- →Scope and update CodeQL/workflow governance
- →Scope and update security automation
How it works
The skill provides a workflow for iccDEV maintainers to scope and update CI, CTest, CPack, sanitizer, workflow, and release-gate infrastructure.
Inputs & outputs
When to use maintainer-ci-ctest
- →Add or update CTest profile validations
- →Configure CI workflow gates
- →Update sanitizer policy and scripts
- →Manage release packaging and CPack settings
About this skill
Maintainer CI and CTest Workflow
Use this skill only for iccDEV maintainer-owned infrastructure changes:
.github/**, Dockerfile*, CTest registration, CPack and release packaging,
sanitizer helper policy, CodeQL/workflow governance, vcpkg release verification,
and security automation.
General contributor requests should be redirected to issue or PR descriptions unless an iccDEV maintainer explicitly approved the infrastructure change.
Scope Decision
Choose the smallest maintainer-owned surface that proves the behavior:
| Change | Primary location | Required docs |
|---|---|---|
| Add profile input | Testing/CreateAllProfiles.* | docs/ctest.md if counts change |
| Add profile validation | Testing/RunTests.* | docs/ctest.md if CTest coverage changes |
| Add focused Linux regression | .github/scripts/*.sh | .github/ci/regression/README.md or docs/ctest.md |
| Register CTest suite | Build/Cmake/Testing/CMakeLists.txt | docs/ctest.md |
| Change workflow gate | .github/workflows/*.yml | docs/regression-workflow-governance.md |
| Change Apple mobile core gate | Build/Cmake/CMakePresets.json, Build/AppleMobile/**, .github/workflows/ci-apple-*.yml | docs/build.md and docs/regression-workflow-governance.md |
| Change maintainer Dockerfile | Dockerfile* | docs/build.md and docs/regression-workflow-governance.md |
| Change sanitizer policy | Build/Cmake/CMakeLists.txt, .github/scripts/sanitize-* | .github/instructions/* |
| Change CPack/release packaging | Build/Cmake/**, release workflows | docs/build.md or release docs |
| Change vcpkg release verification | ports/iccdev/**, vcpkg workflows | vcpkg skill/docs |
Keep contributor code changes separate from maintainer infrastructure commits when practical.
CTest Rules
checkmust exist on every platform.checkand workflow CTest execution must use--no-tests=error.- Do not add hard-coded CTest suite totals to workflows, docs, or maintainer instructions; keep suite lists descriptive and let CTest discovery report the current total.
- Adding checks inside
iccdev-tool-coverage-baseline.shdoes not change that count; validate the direct script andctest -R '^iccdev\.tool-coverage$'. - If a change touches legacy packed intent decoding or named-color overprint
variants, include both
.github/scripts/iccdev-applynamedcmm-cli-args-regression.shand.github/scripts/iccdev-applysearch-cli-args-regression.sh, plus.github/scripts/iccdev-namedcolor-overprint-regression-tests.sh. - Windows full builds include focused executable regressions, batch-backed suites, dump/profile smoke coverage, shared-export coverage, and PAWG report coverage.
- The comprehensive build matrix must retain MSVC, ClangCL, and MinGW UCRT64 coverage, plus a separate MSVC full CTest gate with warnings treated as errors. Unix must likewise retain the full strict CTest gate.
- Use
rg "Total Tests:|currently register|ci[-]tool[-]tests[.]yml" docs .githubbefore PR handoff to catch stale count and workflow-name references. - Generated-profile count changes must update every explicit assertion source,
including
Build/Cmake/Testing/CMakeLists.txt, generated-profile workflows, and packaged WASM regression scripts. - Do not duplicate generated-profile totals in this skill; use the assertion sources as the current truth.
- Windows batch CTest runs must use the disposable Testing copy under the build
tree and must not dirty the source
Testing/directory. - Windows executable tests must receive runtime DLL directories through
Build/Cmake/Testing/WindowsRuntimePaths.cmake; do not rely on a developer or runner shellPATHfor vcpkg or MinGW runtime DLLs. - MinGW builds still need UCRT64
binon the invoking shellPATHbecause GCC subprocesses such ascc1plus.exedepend on MSYS2 runtime DLLs during build.
Workflow Rules
- Follow
.github/instructions/workflow-governance.instructions.md. - Treat
ci-pr-actionfullas the deterministic core maintainer gate. It runs Unix GCC/Clang Release and Debug builds, exact GCC 15.2 strict Release LTO in the regression container, non-sanitized GCC core tool tests, and Windows. Its tool-test caller excludespr-extendedandci-infrastructureCTests. ci_scope=autois the default. It selects the full matrix for source, build, and test changes; documentation-only changes use the constrained fast-lane settings. Workflow-only changes keep the core orchestrator limited to setup and finalization while the standalone preflight and risk-analysis workflows provide their required contexts. Container-only changes use those standalone security gates and local container validation.- Use
ci_scope=fast-lanefor the exact GCC 15.2 Release LTO and non-sanitized core tool lanes. Fast lane defaults to the latest CTest with Windows disabled; it does not run a Docker verification job. - Container changes require the local canonical-image build and smoke in
docs/regression-container.md; the Docker PR verification job is disabled. - Apple mobile core changes must keep the dependency-free
apple-*-corepresets available, align matchingapple-*-extended-corepresets with SDK and dependency discovery, and keep simulator app capability/gap reporting inBuild/AppleMobilesynchronized withdocs/build.md. - Do not use
|| truearound profile generation, CTest discovery, regression execution, sanitizer checks, or packaging verification. - Use least-privilege permissions and credential cleanup.
- Sanitize all
GITHUB_STEP_SUMMARYandGITHUB_OUTPUTwrites. - Check out the base ref's
.github/scriptssparsely and source its sanitizer helpers for every workflow that executes PR-controlled source. - Include
github.event_namein concurrency keys for workflows that accept both PR and manual-dispatch events, so a manual lane cannot cancel its PR counterpart. - Trigger shared-concurrency workflows sequentially to avoid canceling your own
run. Use
ci-pr-actionfor normal core validation and the standalone path-scoped/manualci-regression-checksworkflow for ASAN/UBSAN coverage.
Local Validation
For focused workflow iteration, start with:
.github/scripts/preflight-safety-checks.sh --fast-lane
This scans changed workflow/script surfaces without running CTest or local
CodeQL databases. Run only the nearest feature test during iteration, then use
--fast-lane=matlab for MATLAB-only work. Use the full preflight or hosted
gates before final handoff.
file <changed-files>
git diff --check
cmake -S Build/Cmake -B build -DENABLE_TOOLS=ON -DENABLE_TESTS=ON -DENABLE_WXWIDGETS=OFF
cmake --build build --parallel "$(nproc)"
ctest --test-dir build -N --no-tests=error
ctest --test-dir build --output-on-failure --no-tests=error
For tool coverage script changes:
ICCDEV_TOOLS_DIR=$PWD/build/Tools \
ICCDEV_TESTING_DIR=$PWD/Testing \
ICCDEV_TEST_OUTDIR=/tmp/iccdev-tool-output \
.github/scripts/iccdev-tool-coverage-baseline.sh --asan --quick
ctest --test-dir build -R '^iccdev\.tool-coverage$' --output-on-failure
For ci-pr-lint.yml updates, install clang-tidy, clang-tools, and
cppcheck, then follow the canonical component-partitioned local reproduction
in docs/build.md#maintainer-static-analysis. Verify that every selected
component has its own cppcheck and clang-tidy report, and that the combined
reports preserve the sum of the component output.
For workflow YAML:
python3 -c "import yaml; [yaml.safe_load(open(p)) for p in ['.github/workflows/<workflow>.yml']]; print('YAML parse OK')"
actionlint -no-color .github/workflows/<workflow>.yml
For Apple mobile core and simulator workflow changes on macOS:
cmake --list-presets=configure -S Build/Cmake | grep -E 'apple-.*(extended-core|core)'
bash .github/scripts/iccdev-apple-simulator-smoke.sh ios
bash .github/scripts/iccdev-apple-simulator-smoke.sh watchos
bash .github/scripts/iccdev-xcode-ctest-smoke.sh
Set ICCDEV_APPLE_CORE_FLAVOR=minimal only when explicitly validating the
dependency-free app path. The default simulator smoke should use the extended
core and require the app's JSON report to include built-library checks, the
public invalid-profile substitution control, and non-failing mobile gap notes.
For CPack, install/export, vcpkg, or release packaging changes, run the nearest packaging smoke test and inspect logs for missing files, duplicate install manifest entries, CRT mismatch warnings, and skipped smoke coverage.
For Dockerfile* changes:
docker build -t iccdev-container-check -f <Dockerfile> .
docker run --rm iccdev-container-check <smoke-command>
For the unified Dockerfile, follow the complete local development-environment
preflight in docs/regression-container.md#maintainer-preflight-and-security-checks.
Cached builds are permitted for development iterations. The final pre-push
proof requires workflow and Dockerfile policy checks, a no-cache build,
analyzer inventory and runtime smoke, a healthy image, and Trivy
vulnerability/secret triage. If the image is published, pass the published
branch or SHA tag to ci-iccdev-tool-tests.yml.
GitHub Validation
After pushing, trigger only the workflows affected by the change:
gh workflow run "ci-pr-action" --repo InternationalColorConsortium/iccDEV --ref <branch> -f ci_scope=full
gh workflow run "ci-pr-action" --repo InternationalColorConsortium/iccDEV --ref <branch> \
-f ci_scope=fast-lane -f pr_number=<open-pr-number>
gh workflow run "ci-risk-analysis" --repo InternationalColorConsortium/iccDEV --ref <branch> \
-f analysis_target="Specific git ref" -f git_ref=<full-sha> -f severity_threshold=HIGH -f fail_on_findings=true
Wait for shared-concurrency workflows one at a time. Capture run IDs, head SHA,
job conclusions, artifact names, and key sentinel lines such as Total Tests,
`1
Content truncated.
When not to use it
- →For general contributor requests
- →When not making maintainer-owned infrastructure changes
- →When not explicitly approved by an iccDEV maintainer
Limitations
- →Use this skill only for iccDEV maintainer-owned infrastructure changes:
- →General contributor requests should be redirected to issue or PR descriptions unless an iccDEV maintainer explicitly approved the infrastructure change.
- →Do not add hard-coded CTest suite totals to workflows, docs, or maintainer instructions
How it compares
This skill offers a specialized workflow for maintainer-owned infrastructure changes, ensuring adherence to specific rules and validation steps, unlike general CI/CD pipeline management.
Compared to similar skills
maintainer-ci-ctest side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| maintainer-ci-ctest (this skill) | 0 | 3mo | Review | Advanced |
| deployment-pipeline-design | 6 | 4mo | Review | Advanced |
| cloudflare-deploy | 3 | 7mo | Review | Intermediate |
| artifactory-module-architecture | 4 | 4mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by InternationalColorConsortium
View all by InternationalColorConsortium →You might also like
deployment-pipeline-design
wshobson
Design multi-stage CI/CD pipelines with approval gates, security checks, and deployment orchestration. Use when architecting deployment workflows, setting up continuous delivery, or implementing GitOps practices.
cloudflare-deploy
davila7
Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.
artifactory-module-architecture
TencentBlueKing
Artifactory 制品库模块架构指南,涵盖制品上传下载、存储后端适配、制品元数据、清理策略、权限控制。当用户开发制品库功能、处理制品存储、配置清理策略或实现制品管理时使用。
deployment-engineer
sickn33
Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.
genkit-infra-expert
jeremylongshore
Execute use when deploying Genkit applications to production with Terraform. Trigger with phrases like "deploy genkit terraform", "provision genkit infrastructure", "firebase functions terraform", "cloud run deployment", or "genkit production infrastructure". Provisions Firebase Functions, Cloud Run services, GKE clusters, monitoring dashboards, and CI/CD for AI workflows.
managing-deployment-rollbacks
jeremylongshore
Deploy use when you need to work with deployment and CI/CD. This skill provides deployment automation and orchestration with comprehensive guidance and automation. Trigger with phrases like "deploy application", "create pipeline", or "automate deployment".