@ship.zone/ci-spec 2.0.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.
Files changed (116) hide show
  1. package/.smartconfig.json +46 -0
  2. package/changelog.md +190 -0
  3. package/conformance/archive-cases.json +446 -0
  4. package/conformance/ci-actions/compile-invalid/build-arg-secret-collision.yml +31 -0
  5. package/conformance/ci-actions/compile-invalid/candidate-without-needs.yml +36 -0
  6. package/conformance/ci-actions/compile-invalid/needs-wider-triggers.yml +42 -0
  7. package/conformance/ci-actions/compile-invalid/npm-read-registry-not-allowlisted.yml +34 -0
  8. package/conformance/ci-actions/compile-invalid/publish-job-excludes-tag.yml +57 -0
  9. package/conformance/ci-actions/compile-invalid/shared-memory-above-memory.yml +28 -0
  10. package/conformance/ci-actions/compile-invalid/trigger-kind-without-job.yml +30 -0
  11. package/conformance/ci-actions/invalid/alias-affix-invalid.yml +33 -0
  12. package/conformance/ci-actions/invalid/alias.yml +32 -0
  13. package/conformance/ci-actions/invalid/bridge-network.yml +27 -0
  14. package/conformance/ci-actions/invalid/build-darwin-platform.yml +24 -0
  15. package/conformance/ci-actions/invalid/build-with-steps.yml +27 -0
  16. package/conformance/ci-actions/invalid/concurrency-empty-group.yml +28 -0
  17. package/conformance/ci-actions/invalid/concurrency-without-cancel-in-progress.yml +27 -0
  18. package/conformance/ci-actions/invalid/container-job-build-profile.yml +25 -0
  19. package/conformance/ci-actions/invalid/custom-tag.txt +23 -0
  20. package/conformance/ci-actions/invalid/duplicate-key.txt +24 -0
  21. package/conformance/ci-actions/invalid/egress-bare-wildcard.yml +29 -0
  22. package/conformance/ci-actions/invalid/egress-empty-allowlist.yml +28 -0
  23. package/conformance/ci-actions/invalid/egress-ip-literal.yml +29 -0
  24. package/conformance/ci-actions/invalid/egress-single-label-wildcard.yml +29 -0
  25. package/conformance/ci-actions/invalid/job-publish-permission.yml +28 -0
  26. package/conformance/ci-actions/invalid/job-trigger-undeclared-kind.yml +27 -0
  27. package/conformance/ci-actions/invalid/literal-alias-affix.yml +33 -0
  28. package/conformance/ci-actions/invalid/missing-spec.yml +24 -0
  29. package/conformance/ci-actions/invalid/multiple-documents.yml +25 -0
  30. package/conformance/ci-actions/invalid/npm-read-invalid-scope.yml +33 -0
  31. package/conformance/ci-actions/invalid/oci-darwin-platform.yml +25 -0
  32. package/conformance/ci-actions/invalid/permission-without-publication.yml +31 -0
  33. package/conformance/ci-actions/invalid/publish-order-duplicate.yml +50 -0
  34. package/conformance/ci-actions/invalid/publish-order-missing-kind.yml +48 -0
  35. package/conformance/ci-actions/invalid/publish-order-undeclared-kind.yml +45 -0
  36. package/conformance/ci-actions/invalid/publish-without-permission.yml +31 -0
  37. package/conformance/ci-actions/invalid/publish-without-tag-trigger.yml +31 -0
  38. package/conformance/ci-actions/invalid/release-notes-without-assets.yml +46 -0
  39. package/conformance/ci-actions/invalid/reserved-label-prefix.yml +25 -0
  40. package/conformance/ci-actions/invalid/reserved-label.yml +25 -0
  41. package/conformance/ci-actions/invalid/retention-above-maximum.yml +83 -0
  42. package/conformance/ci-actions/invalid/retention-below-minimum.yml +83 -0
  43. package/conformance/ci-actions/invalid/schema-version-field.yml +26 -0
  44. package/conformance/ci-actions/invalid/shared-memory-below-minimum.yml +28 -0
  45. package/conformance/ci-actions/invalid/shell-string.yml +21 -0
  46. package/conformance/ci-actions/invalid/spec-number.yml +25 -0
  47. package/conformance/ci-actions/invalid/spec-prerelease.yml +25 -0
  48. package/conformance/ci-actions/invalid/spec-range.yml +25 -0
  49. package/conformance/ci-actions/invalid/timeout-above-maximum.yml +26 -0
  50. package/conformance/ci-actions/invalid/timeout-below-minimum.yml +26 -0
  51. package/conformance/ci-actions/invalid/unknown-alias-kind.yml +31 -0
  52. package/conformance/ci-actions/invalid/unknown-key.yml +24 -0
  53. package/conformance/ci-actions/invalid/vm-darwin-candidate.yml +38 -0
  54. package/conformance/ci-actions/invalid/vm-darwin-shared-memory.yml +28 -0
  55. package/conformance/ci-actions/invalid/vm-oci-execution.yml +25 -0
  56. package/conformance/ci-actions/invalid/vm-unsupported-platform.yml +25 -0
  57. package/conformance/ci-actions/invalid/vm-without-platform.yml +24 -0
  58. package/conformance/ci-actions/valid/concurrency.yml +83 -0
  59. package/conformance/ci-actions/valid/egress.yml +40 -0
  60. package/conformance/ci-actions/valid/image-build.yml +80 -0
  61. package/conformance/ci-actions/valid/matrix.yml +45 -0
  62. package/conformance/ci-actions/valid/minimal.yml +25 -0
  63. package/conformance/ci-actions/valid/npm-read.yml +60 -0
  64. package/conformance/ci-actions/valid/release-assets.yml +114 -0
  65. package/conformance/ci-actions/valid/release-signing.yml +71 -0
  66. package/conformance/ci-actions/valid/release.yml +109 -0
  67. package/conformance/ci-actions/valid/resources.yml +79 -0
  68. package/conformance/ci-actions/valid/vm.yml +77 -0
  69. package/conformance/compile-cases.json +5885 -0
  70. package/conformance/compile-cases.schema.json +766 -0
  71. package/conformance/digest-cases.json +144 -0
  72. package/conformance/runner-cases.json +1238 -0
  73. package/conformance/runner-jobs/invalid/bridge-network.json +70 -0
  74. package/conformance/runner-jobs/invalid/build-darwin-platform.json +100 -0
  75. package/conformance/runner-jobs/invalid/build-with-steps.json +111 -0
  76. package/conformance/runner-jobs/invalid/build-without-microvm.json +100 -0
  77. package/conformance/runner-jobs/invalid/egress-empty-allowlist.json +71 -0
  78. package/conformance/runner-jobs/invalid/mutable-image.json +70 -0
  79. package/conformance/runner-jobs/invalid/npm-read-reserved-environment.json +82 -0
  80. package/conformance/runner-jobs/invalid/oci-darwin-platform.json +71 -0
  81. package/conformance/runner-jobs/invalid/push-permission-container.json +70 -0
  82. package/conformance/runner-jobs/invalid/shared-memory-below-minimum.json +71 -0
  83. package/conformance/runner-jobs/invalid/timeout-missing.json +69 -0
  84. package/conformance/runner-jobs/invalid/vm-without-microvm.json +82 -0
  85. package/conformance/runner-jobs/valid/candidate-test.json +72 -0
  86. package/conformance/runner-jobs/valid/egress.json +80 -0
  87. package/conformance/runner-jobs/valid/image-build.json +100 -0
  88. package/conformance/runner-jobs/valid/minimal.json +70 -0
  89. package/conformance/runner-jobs/valid/npm-read.json +81 -0
  90. package/conformance/runner-jobs/valid/resources.json +71 -0
  91. package/conformance/runner-jobs/valid/timeout-retention-defaults.json +91 -0
  92. package/conformance/runner-jobs/valid/vm-darwin.json +70 -0
  93. package/conformance/runner-jobs/valid/vm.json +82 -0
  94. package/conformance/runner-messages.json +2035 -0
  95. package/conformance/version-cases.json +125 -0
  96. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  97. package/dist_ts/00_commitinfo_data.js +9 -0
  98. package/dist_ts/constants.d.ts +199 -0
  99. package/dist_ts/constants.js +106 -0
  100. package/dist_ts/index.d.ts +1 -0
  101. package/dist_ts/index.js +2 -0
  102. package/dist_ts/plugins.d.ts +1 -0
  103. package/dist_ts/plugins.js +3 -0
  104. package/examples/ci_actions.yml +64 -0
  105. package/license.md +21 -0
  106. package/package.json +72 -0
  107. package/readme.md +146 -0
  108. package/schemas/ci_actions.schema.json +1664 -0
  109. package/schemas/runner-job.schema.json +1172 -0
  110. package/spec/ci-actions.md +433 -0
  111. package/spec/runner-protocol.md +378 -0
  112. package/spec/runner.openapi.json +2182 -0
  113. package/ts/00_commitinfo_data.ts +8 -0
  114. package/ts/constants.ts +112 -0
  115. package/ts/index.ts +1 -0
  116. package/ts/plugins.ts +1 -0
@@ -0,0 +1,71 @@
1
+ spec: 2.0.0
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ tag:
7
+ tags:
8
+ - v*
9
+ permissions:
10
+ source: read
11
+ artifacts: write
12
+ caches: none
13
+ images: none
14
+ npm: none
15
+ releaseAssets: publish
16
+ jobs:
17
+ test:
18
+ runner:
19
+ profile: oci
20
+ labels:
21
+ - linux
22
+ execution:
23
+ profile: oci
24
+ image: registry.example/ci/deno@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
25
+ steps:
26
+ - run:
27
+ - deno
28
+ - task
29
+ - test
30
+ release:
31
+ triggers:
32
+ - tag
33
+ needs:
34
+ - test
35
+ runner:
36
+ profile: vm
37
+ labels:
38
+ - linux
39
+ platform: linux/amd64
40
+ execution:
41
+ profile: vm
42
+ image: registry.example/ci/live-build@sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
43
+ network:
44
+ mode: egress
45
+ allow:
46
+ - host: deb.debian.org
47
+ secrets:
48
+ - name: ECOOS_UPDATE_MANIFEST_PRIVATE_KEY_PEM
49
+ environment: MANIFEST_PRIVATE_KEY_PEM
50
+ steps:
51
+ - name: Build the ISO
52
+ run:
53
+ - ./scripts/build-iso.sh
54
+ - dist
55
+ - name: Write and sign the update manifest
56
+ run:
57
+ - ./scripts/sign-update-manifest.sh
58
+ - dist/ecoos-update-manifest.json
59
+ artifacts:
60
+ - name: release-files
61
+ path: dist
62
+ when: success
63
+ required: true
64
+ maximumBytes: 4294967296
65
+ maximumExtractedBytes: 4294967296
66
+ maximumEntries: 16
67
+ publish:
68
+ releaseAssets:
69
+ - artifact:
70
+ job: release
71
+ name: release-files
@@ -0,0 +1,109 @@
1
+ spec: 2.0.0
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ pullRequest:
7
+ targetBranches:
8
+ - main
9
+ tag:
10
+ tags:
11
+ - v*
12
+ permissions:
13
+ source: read
14
+ artifacts: write
15
+ caches: read-write
16
+ images: publish
17
+ npm: publish
18
+ releaseAssets: publish
19
+ jobs:
20
+ image:
21
+ runner:
22
+ profile: oci-image
23
+ labels:
24
+ - builder
25
+ network:
26
+ mode: egress
27
+ allow:
28
+ - host: registry.npmjs.org
29
+ build:
30
+ context: .
31
+ dockerfile: Dockerfile
32
+ platforms:
33
+ - linux/amd64
34
+ - linux/arm64
35
+ candidate-test:
36
+ needs:
37
+ - image
38
+ runner:
39
+ profile: oci
40
+ labels:
41
+ - linux
42
+ platform: linux/amd64
43
+ permissions:
44
+ source: read
45
+ artifacts: none
46
+ caches: none
47
+ images: none
48
+ execution:
49
+ profile: oci
50
+ image:
51
+ candidate: image
52
+ steps:
53
+ - run:
54
+ - /tsdocker_test.sh
55
+ pack:
56
+ runner:
57
+ profile: oci
58
+ labels:
59
+ - linux
60
+ execution:
61
+ profile: oci
62
+ image: registry.example/ci/node@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
63
+ network:
64
+ mode: egress
65
+ allow:
66
+ - host: registry.npmjs.org
67
+ steps:
68
+ - run:
69
+ - pnpm
70
+ - install
71
+ - --frozen-lockfile
72
+ - run:
73
+ - pnpm
74
+ - test
75
+ - run:
76
+ - pnpm
77
+ - pack
78
+ - --pack-destination
79
+ - .nogit/package
80
+ artifacts:
81
+ - name: package
82
+ path: .nogit/package
83
+ when: success
84
+ required: true
85
+ maximumBytes: 104857600
86
+ maximumExtractedBytes: 104857600
87
+ maximumEntries: 1
88
+ publish:
89
+ images:
90
+ - candidate: image
91
+ destinations:
92
+ - registry: code.foss.global
93
+ repository: example/app
94
+ aliases:
95
+ - kind: version
96
+ - kind: literal
97
+ value: latest
98
+ npm:
99
+ - artifact:
100
+ job: pack
101
+ name: package
102
+ registries:
103
+ - https://registry.npmjs.org
104
+ access: public
105
+ distTag: latest
106
+ releaseAssets:
107
+ - artifact:
108
+ job: pack
109
+ name: package
@@ -0,0 +1,79 @@
1
+ spec: 2.0.0
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ permissions:
7
+ source: read
8
+ artifacts: none
9
+ caches: read-write
10
+ images: none
11
+ npm: none
12
+ releaseAssets: none
13
+ jobs:
14
+ browser-test:
15
+ runner:
16
+ profile: oci
17
+ labels:
18
+ - linux
19
+ execution:
20
+ profile: oci
21
+ image: registry.example/ci/node@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
22
+ network:
23
+ mode: egress
24
+ allow:
25
+ - host: registry.npmjs.org
26
+ resources:
27
+ memoryBytes: 8589934592
28
+ cpus: 4
29
+ pids: 4096
30
+ sharedMemoryBytes: 2147483648
31
+ workspaceBytes: 21474836480
32
+ workspaceEntries: 1000000
33
+ steps:
34
+ - run:
35
+ - pnpm
36
+ - install
37
+ - --frozen-lockfile
38
+ - run:
39
+ - pnpm
40
+ - test
41
+ caches:
42
+ - name: pnpm
43
+ key: pnpm-store
44
+ paths:
45
+ - .pnpm-store
46
+ access: read-write
47
+ maximumBytes: 1073741824
48
+ maximumExtractedBytes: 4294967296
49
+ maximumEntries: 100000
50
+ cross-arm64:
51
+ runner:
52
+ profile: oci
53
+ labels:
54
+ - linux
55
+ platform: linux/amd64
56
+ execution:
57
+ profile: oci
58
+ image: registry.example/ci/rust@sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
59
+ network:
60
+ mode: egress
61
+ allow:
62
+ - host: index.crates.io
63
+ - host: static.crates.io
64
+ steps:
65
+ - run:
66
+ - cargo
67
+ - build
68
+ - --release
69
+ - --target
70
+ - aarch64-unknown-linux-musl
71
+ caches:
72
+ - name: cargo-target
73
+ key: cargo-target-aarch64-unknown-linux-musl
74
+ paths:
75
+ - target
76
+ access: read-write
77
+ maximumBytes: 8589934592
78
+ maximumExtractedBytes: 34359738368
79
+ maximumEntries: 1000000
@@ -0,0 +1,77 @@
1
+ spec: 2.0.0
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ pullRequest:
7
+ targetBranches:
8
+ - main
9
+ permissions:
10
+ source: read
11
+ artifacts: write
12
+ caches: none
13
+ images: none
14
+ npm: none
15
+ releaseAssets: none
16
+ jobs:
17
+ docker-test:
18
+ runner:
19
+ profile: vm
20
+ labels:
21
+ - linux
22
+ platform: linux/amd64
23
+ execution:
24
+ profile: vm
25
+ image: registry.example/ci/node-dind@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
26
+ workingDirectory: /workspace
27
+ network:
28
+ mode: egress
29
+ allow:
30
+ - host: registry.npmjs.org
31
+ - host: registry-1.docker.io
32
+ - host: auth.docker.io
33
+ - host: production.cloudflare.docker.com
34
+ resources:
35
+ memoryBytes: 8589934592
36
+ cpus: 4
37
+ pids: 8192
38
+ sharedMemoryBytes: 1073741824
39
+ steps:
40
+ - run:
41
+ - pnpm
42
+ - install
43
+ - --frozen-lockfile
44
+ - name: Test with a container engine
45
+ run:
46
+ - /usr/local/bin/with-dockerd
47
+ - pnpm
48
+ - test
49
+ macos-build:
50
+ runner:
51
+ profile: vm
52
+ labels:
53
+ - macos
54
+ platform: darwin/arm64
55
+ execution:
56
+ profile: vm
57
+ image: registry.example/ci/macos-xcode@sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
58
+ network:
59
+ mode: egress
60
+ allow:
61
+ - host: index.crates.io
62
+ - host: static.crates.io
63
+ steps:
64
+ - run:
65
+ - cargo
66
+ - build
67
+ - --release
68
+ - --target
69
+ - aarch64-apple-darwin
70
+ artifacts:
71
+ - name: binary
72
+ path: target/aarch64-apple-darwin/release/app
73
+ when: success
74
+ required: true
75
+ maximumBytes: 104857600
76
+ maximumExtractedBytes: 104857600
77
+ maximumEntries: 1