@ship.zone/ci-spec 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +18 -0
- package/conformance/compile-cases.json +2 -2
- package/conformance/runner-job-cases.json +703 -0
- package/conformance/runner-job-cases.schema.json +134 -0
- package/conformance/runner-jobs/incoherent/artifact-maximum-above-limit.json +91 -0
- package/conformance/runner-jobs/incoherent/build-secret-unknown-target.json +104 -0
- package/conformance/runner-jobs/incoherent/cache-count-above-limit.json +91 -0
- package/conformance/runner-jobs/incoherent/environment-above-limit.json +206 -0
- package/conformance/runner-jobs/incoherent/plan-digest-mismatch.json +70 -0
- package/conformance/runner-jobs/incoherent/precedence-limit-before-digest.json +70 -0
- package/conformance/runner-jobs/incoherent/reserved-prefix-environment.json +71 -0
- package/conformance/runner-jobs/incoherent/reserved-prefix-secret-target.json +72 -0
- package/conformance/runner-jobs/incoherent/reserved-variable-missing.json +69 -0
- package/conformance/runner-jobs/incoherent/reserved-variable-not-canonical.json +70 -0
- package/conformance/runner-jobs/incoherent/secret-target-environment-duplicate.json +72 -0
- package/conformance/runner-jobs/incoherent/secret-target-without-build-secret.json +101 -0
- package/conformance/runner-jobs/incoherent/secret-value-too-short.json +72 -0
- package/conformance/runner-jobs/incoherent/shared-memory-above-memory.json +71 -0
- package/conformance/runner-jobs/incoherent/source-above-limit.json +70 -0
- package/conformance/runner-jobs/invalid/artifacts-feature-missing.json +91 -0
- package/conformance/runner-jobs/invalid/artifacts-none-permission.json +91 -0
- package/conformance/runner-jobs/invalid/build-without-push-permission.json +100 -0
- package/conformance/runner-jobs/invalid/read-write-cache-read-permission.json +91 -0
- package/conformance/runner-jobs/invalid/source-feature-missing.json +70 -0
- package/conformance/runner-jobs/invalid/vm-without-platform.json +81 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/constants.d.ts +42 -0
- package/dist_ts/constants.js +57 -1
- package/package.json +4 -2
- package/readme.md +13 -4
- package/spec/runner-protocol.md +31 -1
- package/spec/runner.openapi.json +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/constants.ts +65 -0
package/changelog.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026-09-27 - 2.1.0
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- export the reserved names of the standard (ci-actions, runner-protocol)
|
|
8
|
+
- The package exports `reservedEnvironmentPrefix` (`SHIPZONE_CI_`), `matrixEnvironmentName` (`SHIPZONE_CI_MATRIX_JSON`), `inputsEnvironmentName` (`SHIPZONE_CI_INPUTS_JSON`), `reservedStepEnvironmentNames`, `npmUserConfigEnvironmentName` (`NPM_CONFIG_USERCONFIG`), `npmBuildSecretId` (`npmrc`), `reservedImageLabelPrefix` (`zone.ship.ci.`), and `reservedImageLabelKeys` (`org.opencontainers.image.revision`, `org.opencontainers.image.source`, `org.opencontainers.image.version`). The tests check every value against the schemas and the prose.
|
|
9
|
+
- define job failure codes for compiled jobs that are not coherent (runner-protocol)
|
|
10
|
+
- The new Job Coherence section lists every coherence rule of a compiled job in one table, with exactly one code per rule: `spec_incompatible`, `job_schema_invalid`, `job_secret_incoherent`, `job_limit_incoherent`, `job_resources_incoherent`, `job_environment_incoherent`, `job_command_limit_exceeded`, `job_secret_inadmissible`, and `job_digest_mismatch`, in precedence order; a job that is not coherent carries the code of the first rule it violates. The coordinator and the runner check a job with its secret values inserted. The rules are unchanged: the table gathers the coherence rules of Capabilities and Matching, the environment rules of the OCI Container Profile, the command limit, secret value admissibility, and the plan digest, and marks the rules the compiled job schema enforces. A runner still abandons such a lease as `runner_error`; `AbandonJobRequest` carries no code.
|
|
11
|
+
- `conformance/runner-job-cases.json` with `conformance/runner-job-cases.schema.json` (exported as `runner-job-cases.json` and `runner-job-cases.schema.json`) lists the codes and 45 cases: every runner job fixture with its outcome, and inline jobs for the version rule. The new `conformance/runner-jobs/incoherent/` holds 15 schema-valid jobs that fail a later rule, and `conformance/runner-jobs/invalid/` gains 6 jobs for the schema-enforced rules that had none. Every code but `job_command_limit_exceeded` has a case that breaks its rule alone.
|
|
12
|
+
- The package exports `runnerJobFailureCodes`, and `ciSpecAssetPaths` gains `runnerJobCases` and `runnerJobCasesSchema`.
|
|
13
|
+
|
|
14
|
+
### Fixes
|
|
15
|
+
|
|
16
|
+
- type-check every test file (package)
|
|
17
|
+
- The `test:types` script quotes its glob, so `tsbuild check` expands `test/**/*` itself instead of the shell.
|
|
18
|
+
- keep the newer-version compile vectors newer (ci-actions)
|
|
19
|
+
- `version-newer-before-schema` and `layer-yaml-before-version` declare `spec: 2.999.0` instead of `2.1.0`, which this release accepts.
|
|
20
|
+
|
|
3
21
|
## 2026-09-27 - 2.0.0
|
|
4
22
|
|
|
5
23
|
### Breaking Changes
|
|
@@ -1169,7 +1169,7 @@
|
|
|
1169
1169
|
"id": "layer-yaml-before-version",
|
|
1170
1170
|
"description": "An alias and a newer spec: the YAML layer decides.",
|
|
1171
1171
|
"workflow": {
|
|
1172
|
-
"source": "spec: 2.
|
|
1172
|
+
"source": "spec: 2.999.0\non:\n push: {}\npermissions:\n source: read\n artifacts: none\n caches: none\n images: none\n npm: none\n releaseAssets: none\njobs:\n test:\n runner:\n profile: oci\n labels:\n - linux\n execution:\n profile: oci\n image: &image registry.example/test@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n steps:\n - run:\n - pnpm\n - test\n"
|
|
1173
1173
|
},
|
|
1174
1174
|
"expected": {
|
|
1175
1175
|
"outcome": "failed",
|
|
@@ -1180,7 +1180,7 @@
|
|
|
1180
1180
|
"id": "version-newer-before-schema",
|
|
1181
1181
|
"description": "A newer minor spec with a property this version does not define fails with spec_incompatible, not a schema error.",
|
|
1182
1182
|
"workflow": {
|
|
1183
|
-
"source": "spec: 2.
|
|
1183
|
+
"source": "spec: 2.999.0\non:\n push: {}\npermissions:\n source: read\n artifacts: none\n caches: none\n images: none\n npm: none\n releaseAssets: none\nfutureField: true\njobs:\n test:\n runner:\n profile: oci\n labels:\n - linux\n execution:\n profile: oci\n image: registry.example/test@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n steps:\n - run:\n - pnpm\n - test\n"
|
|
1184
1184
|
},
|
|
1185
1185
|
"expected": {
|
|
1186
1186
|
"outcome": "failed",
|