ci-testing
Skill4 starsChanged 7 months agoMITView on GitHub
Create, extend, review, and repair RISC OS CI pipelines, especially GitHub Actions and GitLab CI files, optional matching `.robuild.yaml` or `.robuild.yml` files for build-service jobs, 32-bit and 64-bit builds, build-service testing, artifact packaging, and draft releases. Use when Codex needs to work on `.github/workflows/*.yml`, `.gitlab-ci.yml`, `example-ci.yml`, `.robuild.yaml`, `.robuild.yml`, `riscos-project create-ci`, build.riscos.online integration, or RISC OS packaging/testing patterns for AIF, RM, and library-export projects.
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 8 are distinctive, and 13 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 11
Use this skill to create or update CI workflows for RISC OS repositories.
- Very specific: line 12
Keep the workflow aligned with the repository's Makefile, VersionNum, exported artifacts, and any .robuild.yaml or .robuild.yml submitted …
- Very specific: line 21
Check whether riscos-project create-ci should be the starting point.
- Very specific: line 24
Keep the workflow and .robuild.yaml or .robuild.yml in sync when a build-service job is still used.
- Very specific: line 25
If the repository builds PRM-in-XML documentation, also use the writing-prminxml skill and its references/github-ci.md.
- Distinctive: line 29
When a repository does not yet have CI files, start with:
- Very specific: line 35
Treat that as the normal baseline generator for both .github/workflows/ci.yml and .gitlab-ci.yml, not the finished answer.
- Distinctive: line 42
add artifact packaging and release handling.
- Distinctive: line 43
add build-service execution tests for AIF or RM outputs when the project produces runnable binaries.
- Distinctive: line 47
Read only the reference file you need:
- Distinctive: line 56
Use the bundled assets as starting points:
- Distinctive: line 73
Keep 32-bit and 64-bit build steps explicit when both are supported.
- Very specific: line 74
Use the repository's existing VersionNum convention when present.
- Very specific: line 80
Keep .robuild.yaml or .robuild.yml narrowly scoped to the commands needed on RISC OS.
- Very specific: line 81
If documentation output is part of CI, do not hand-roll PRM-in-XML rendering steps.
- Distinctive: line 85
After editing CI files:
- Very specific: line 87
read back the workflow and .robuild.yaml or .robuild.yml for placeholder drift or mismatched artifact names.
- Distinctive: line 88
if practical, run YAML validation or repository linting.
- Very specific: line 91
if documentation jobs were added, confirm they follow the writing-prminxml GitHub CI pattern.
- Very specific: line 95
Use creating-github-actions for general GitHub Actions structure and hygiene.
- Very specific: line 96
Use writing-prminxml when the CI pipeline must build PRM-in-XML output, especially its references/github-ci.md.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CI Testing
Overview
Use this skill to create or update CI workflows for RISC OS repositories.
Keep the workflow aligned with the repository's Makefile, VersionNum, exported artifacts, and any .robuild.yaml or .robuild.yml submitted to build.riscos.online. Prefer the .yaml spelling, but both file names are valid.
Workflow
- Inspect the repository's existing build shape first.
- Decide whether the repository is:
- a library export that should package exports rather than run a produced binary;
- an AIF command/application that can be executed in CI;
- an RM/module that can be loaded and exercised in CI.
- Check whether
riscos-project create-cishould be the starting point. - Decide whether the repository should keep the generated build-service shape or switch to direct 32-bit and 64-bit container builds.
- Choose the smallest template that fits, then adapt filenames, commands, and archive names.
- Keep the workflow and
.robuild.yamlor.robuild.ymlin sync when a build-service job is still used. - If the repository builds PRM-in-XML documentation, also use the
writing-prminxmlskill and itsreferences/github-ci.md.
Starting Point
When a repository does not yet have CI files, start with:
riscos-project create-ciTreat that as the normal baseline generator for both .github/workflows/ci.yml and .gitlab-ci.yml, not the finished answer.
After generation:
- review the generated
.github/workflows/*.yml; - review the generated
.gitlab-ci.ymlwhen present; - review the generated
.robuild.yamlor.robuild.yml; - extend to 64-bit builds when needed;
- add artifact packaging and release handling;
- add build-service execution tests for AIF or RM outputs when the project produces runnable binaries.
Pattern Selection
Read only the reference file you need:
- Generic pattern notes derived from local example CI files: references/repository-patterns.md
- Template choices and how to adapt them: references/workflow-templates.md
Assets
Use the bundled assets as starting points:
assets/library-export-ci.ymlFor repositories that export a library and package exported files.assets/library-export.robuild.yamlMatching build-service configuration for a library export.assets/binary-build-test-release-ci.ymlBuild, test, package, and draft-release template for AIF or RM outputs.assets/aif-test.robuild.yamlMatching build-service test file for absolute binaries.assets/rm-test.robuild.yamlMatching build-service test file for modules.
These files are intentionally templated with {{PLACEHOLDER}} values so they can be copied and then filled in mechanically.
Core Rules
- Keep 32-bit and 64-bit build steps explicit when both are supported.
- Use the repository's existing
VersionNumconvention when present; for normal RISC OSVersionNumfiles preferModule_FullVersionrather than scraping looserMajorVersiontext. Fall back to the git hash only when no usable version define exists. - GitHub Actions
run:steps default to/bin/shin many environments. Use POSIX shell syntax such as[ -f file ]unless the workflow explicitly setsshell: bash. - GitLab CI
script:entries commonly run under a POSIX shell as well. Do not assume Bash-only syntax there unless the job explicitly selects Bash. - Name uploaded artifacts and release archives consistently.
- For library exports, package the export directory or files. Do not invent a runtime test that cannot validate library behaviour.
- For AIF or RM outputs, prefer a separate test job that downloads the built artifact and exercises it through build.riscos.online with a focused
.robuild.yaml. - Keep
.robuild.yamlor.robuild.ymlnarrowly scoped to the commands needed on RISC OS. Prefer.yaml, but support.ymlwhen that is what the repository already uses. Keep host-side packaging and release logic in the CI system. - If documentation output is part of CI, do not hand-roll PRM-in-XML rendering steps. Use the
writing-prminxmlskill and its GitHub CI guidance.
Validation
After editing CI files:
- read back the workflow and
.robuild.yamlor.robuild.ymlfor placeholder drift or mismatched artifact names; - if practical, run YAML validation or repository linting;
- confirm every file referenced by the workflow is actually produced earlier in the pipeline;
- confirm every file referenced in
.robuild.yamlor.robuild.ymlwill exist inside the uploaded source archive; - if documentation jobs were added, confirm they follow the
writing-prminxmlGitHub CI pattern.
Related Skills
- Use
creating-github-actionsfor general GitHub Actions structure and hygiene. - Use
writing-prminxmlwhen the CI pipeline must build PRM-in-XML output, especially itsreferences/github-ci.md.
In this repository47 other files it gives its agents.
- allocating-resourcesSkill
- creating-pull-requestsSkill
- designing-modulesSkill
- porting-to-riscos-cSkill
- reading-assemblySkill
- riscos-commandsSkill
- riscos-desktop-fileractionSkill
- riscos-filer-likeSkill
- riscos-filesystemSkill
- riscos-graphics-convertersSkill
- riscos-network-dcistatisticsSkill
- riscos-network-resolverSkill
- riscos-outputSkill
- riscos-reSkill
- riscos-styleSkill
- riscos-throwbackSkill
- riscos-urls-fetchingSkill
- riscos-urls-launchingSkill
- riscos-wimp-appSkill
- riscos-wimpSkill
- riscos-wimp-templatesSkill
- updating-robe-skillsSkill
- using-bbcbasicSkill
- using-cmhgSkill
- using-ghSkill
- using-gitSkill
- using-libasmSkill
- using-libgcontextSkill
- using-liboslibSkill
- using-libriscoslibSkill
- using-libtoolboxSkill
- using-makefilesSkill
- using-perlSkill
- using-stronghelpSkill
- using-toolbox-imagefilegadgetSkill
- using-tooltesterSkill
- writing-assemblySkill
- writing-assembly-testsSkill
- writing-cmodulesSkill
- writing-cplusplusSkill
- writing-cSkill
- writing-fortranSkill
- writing-oslib-defsSkill
- writing-pascalSkill
- writing-prminxmlSkill
- writing-pymodulesSkill
- writing-pyromaniac-integration-testsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

