Validation and editor support
slipway validate
Section titled “slipway validate”slipway validate # every .slipway/*.yaml under the working directoryslipway validate .slipway/api.yaml # one fileslipway validate --json # machine-readableValidation runs locally and needs no server connection. It checks the JSON Schema and the semantic rules below. Run it in a pre-commit hook or as the first job in CI.
Editor support
Section titled “Editor support”The schema is published at https://slipway.systems/schema/pipeline-v1.json. Add a modeline at the top of the file for the YAML language server (VS Code, Neovim, JetBrains):
# yaml-language-server: $schema=https://slipway.systems/schema/pipeline-v1.jsonOr map it in VS Code settings:
{ "yaml.schemas": { "https://slipway.systems/schema/pipeline-v1.json": [".slipway/*.yaml", "slipway.yaml"] }}Semantic rules
Section titled “Semantic rules”- Strict. Unknown keys are errors. Values are type-checked.
- Expressions are type-checked against the contexts available at that scope. For example
steps.*is not available in a job’sif. See Contexts. - Secrets are restricted.
secrets.*may be used inenv,withandservices.env, never inname,runorif. runs_onlabels must match a pool the project can use. This is enforced at run time and warned about at validate time.- Limits. Max 500 jobs after matrix expansion per run, 100 steps per job, 20 services per job.
- Timeouts are durations like
30mor2h; the maximum job timeout is plan-limited (Free 60m, Team 6h, Business 24h). - Graph. Job names are unique;
needsmust resolve; cycles are rejected.