Ci testing
Skills repository for RISC OS agents
npx -y skills add gerph/riscos-agent-skills --skill ci-testingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.4 KB, as published. Nobody here has run it
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-ci
Treat 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.