@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,446 @@
1
+ {
2
+ "spec": "2.0.0",
3
+ "format": "tar.gz",
4
+ "encoding": "base64",
5
+ "maximumPathMetadataBytes": 134217728,
6
+ "cases": [
7
+ {
8
+ "id": "valid-basic",
9
+ "valid": true,
10
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwIzSCagrSjNPyQZpKzE+Ei9APCkIkfvYX8tFxVNnAJBi3BLAOS86MwdyEz2glZqVgDtG7sd9RFHxeahLffX/8fh/AMdEDvZ/d3kWMsYY8z8ryCS5xQAKAAA=",
11
+ "expectedMetadata": {
12
+ "sha256": "42424e38de46f7c0a92e382d71b41cf4e996cce94dfc8d7637aba7c0066c2500",
13
+ "sizeBytes": 107,
14
+ "extractedSizeBytes": 3,
15
+ "entryCount": 2
16
+ },
17
+ "limits": {
18
+ "maximumExtractedBytes": 3,
19
+ "maximumEntries": 2,
20
+ "maximumPathMetadataBytes": 12
21
+ },
22
+ "pathMetadataBytes": 12
23
+ },
24
+ {
25
+ "id": "valid-pax-path-and-safe-symlink",
26
+ "valid": true,
27
+ "archiveBase64": "H4sIAAAAAAACA+3Wuw7CIBQG4DP7FLyAeqAXJndH38AcEVsTegnFpI9v6qKpgw7F6/kWSBkIIf9fWuq3hWt25Lalpb31MD1ExDxNLyMijsdh8TofvkuVJxpEAS9w6gJ5QJzikLeH+xKZEqapKluHFT1pBuxndN4sY+/xMP93c621BJFx/qPbUL++9H63PBydfc/9J2rc/1LnIHq+/+hULloK5WroAdfUxbymyi5CH7jl/0LryNiycXFefs/2fzLKv0wxAYGc/+hoZzgEf8ycvLd1+Kz3n0wRMxDq7qfE+WeMsamcAcVtIg0AFAAA",
28
+ "expectedMetadata": {
29
+ "sha256": "941f4162232b5af9c20fe15278e320e8fe5429a508de9f79621b38a0c8e13316",
30
+ "sizeBytes": 237,
31
+ "extractedSizeBytes": 3,
32
+ "entryCount": 3
33
+ },
34
+ "limits": {
35
+ "maximumExtractedBytes": 3,
36
+ "maximumEntries": 3,
37
+ "maximumPathMetadataBytes": 44
38
+ },
39
+ "pathMetadataBytes": 44
40
+ },
41
+ {
42
+ "id": "valid-forward-symlink",
43
+ "valid": true,
44
+ "archiveBase64": "H4sIAAAAAAACA0suLSpKzSthoCUwMDAwMDMxAdMGBgboNCbb0MjA0JBBwagksSg9lbZuYygtLkksYjAwoIYnkT03RAA9gphw/Buixb+BiYEpgwJdAnGEx38FwygYBaNgFIyCkQgAOUXOewAKAAA=",
45
+ "expectedMetadata": {
46
+ "sha256": "6080b51051a8c719a9fa81ed6b4417a9865fa04df9663ec024ac423fb7e10729",
47
+ "sizeBytes": 110,
48
+ "extractedSizeBytes": 1,
49
+ "entryCount": 2
50
+ },
51
+ "limits": {
52
+ "maximumExtractedBytes": 1,
53
+ "maximumEntries": 2,
54
+ "maximumPathMetadataBytes": 134217728
55
+ },
56
+ "pathMetadataBytes": 19
57
+ },
58
+ {
59
+ "id": "valid-implicit-parent-and-prefix-neighbor",
60
+ "valid": true,
61
+ "archiveBase64": "H4sIAAAAAAACA0tkoD0wMDAwMDMxAdMGBgboNBa2ubGxGYOCAR3cxlBaXJJYxGBgQA1PIntuiIDEJP3kjMyclEEV/4YGpmbGo/E/CkbBKBgFtAQARNKbAQAIAAA=",
62
+ "expectedMetadata": {
63
+ "sha256": "5c6da38a7b97d06cbc8696990d92929577a0e54569f0298fa63ba30d2a4d23a0",
64
+ "sizeBytes": 92,
65
+ "extractedSizeBytes": 0,
66
+ "entryCount": 2
67
+ },
68
+ "limits": {
69
+ "maximumExtractedBytes": 1,
70
+ "maximumEntries": 2,
71
+ "maximumPathMetadataBytes": 134217728
72
+ },
73
+ "pathMetadataBytes": 9
74
+ },
75
+ {
76
+ "id": "reject-duplicate-path",
77
+ "valid": false,
78
+ "archiveBase64": "H4sIAAAAAAACAytOzE1loDEwMDAwMDMxAdMGBgboNCbb0MDAxJhBwYCBDqC0uCSxiMHAgBqeRPbcEAHFo/E/ouN/FIyCUTByAQBYB9qkAAgAAA==",
79
+ "expectedMetadata": {
80
+ "sha256": "3c6d700492436b573bb1c2b85644116d5d1c2b445a8b44fdb8d06be4fb4bd046",
81
+ "sizeBytes": 82,
82
+ "extractedSizeBytes": 0,
83
+ "entryCount": 2
84
+ },
85
+ "limits": {
86
+ "maximumExtractedBytes": 1,
87
+ "maximumEntries": 2,
88
+ "maximumPathMetadataBytes": 134217728
89
+ }
90
+ },
91
+ {
92
+ "id": "reject-late-directory-ancestor",
93
+ "valid": false,
94
+ "archiveBase64": "H4sIAAAAAAACAytILErNK9FPzsjMSWGgETAwMDAwMzEB0wYGBug0JtvQ0MTciEHBgIEOoLS4JLGIwcCAGp5E9twQAQWQ+KepHaTHv4GJuTGDgulo/I+CUTAKRgHNAAAWzookAAgAAA==",
95
+ "expectedMetadata": {
96
+ "sha256": "f3e7c64270b942d8d9949020db69c3a923363e38ed6433c349639cb60ac78b27",
97
+ "sizeBytes": 103,
98
+ "extractedSizeBytes": 0,
99
+ "entryCount": 2
100
+ },
101
+ "limits": {
102
+ "maximumExtractedBytes": 1,
103
+ "maximumEntries": 2,
104
+ "maximumPathMetadataBytes": 134217728
105
+ }
106
+ },
107
+ {
108
+ "id": "reject-descendant-below-file",
109
+ "valid": false,
110
+ "archiveBase64": "H4sIAAAAAAACAytILErNK2GgKTAwMDAwMzEB0wYGBug0JtvQwMTAnEHBgIEOoLS4JLGIwcCAGp5E9twQAQXg+NdPzsjMSRk88W9oYm40Gv+jYBSMglFASwAAX035gAAIAAA=",
111
+ "expectedMetadata": {
112
+ "sha256": "5f55b91b6de66edc30646fa3d43ee6001d084526c0821cb7eaa186ea11ea3342",
113
+ "sizeBytes": 98,
114
+ "extractedSizeBytes": 0,
115
+ "entryCount": 2
116
+ },
117
+ "limits": {
118
+ "maximumExtractedBytes": 1,
119
+ "maximumEntries": 2,
120
+ "maximumPathMetadataBytes": 134217728
121
+ }
122
+ },
123
+ {
124
+ "id": "reject-parent-traversal",
125
+ "valid": false,
126
+ "archiveBase64": "H4sIAAAAAAACA9PT008tTk4sSGWgHTAwMDAwMzEB0wYGBug0JtvQwNTckEHBgIEOoLS4JLGIwcCAGp5E9twoGAWjYBQMcgAAkgmgugAGAAA=",
127
+ "expectedMetadata": {
128
+ "sha256": "82643e2288f22aac44a090069cb7389425d661e35e92d827cd4b4d2573a3e2f9",
129
+ "sizeBytes": 80,
130
+ "extractedSizeBytes": 0,
131
+ "entryCount": 1
132
+ },
133
+ "limits": {
134
+ "maximumExtractedBytes": 1,
135
+ "maximumEntries": 1,
136
+ "maximumPathMetadataBytes": 134217728
137
+ }
138
+ },
139
+ {
140
+ "id": "reject-absolute-path",
141
+ "valid": false,
142
+ "archiveBase64": "H4sIAAAAAAACA9NPLU5OLEhloCUwMDAwMDMxAdMGBgboNCbb0MDE2JRBwYCBDqC0uCSxiMHAgBqeRPbcKBgFo2AUDHIAAHbfR68ABgAA",
143
+ "expectedMetadata": {
144
+ "sha256": "5858fcc96e9f1c7778b198fd8a21139e9811977721e41fc95105226972628daf",
145
+ "sizeBytes": 78,
146
+ "extractedSizeBytes": 0,
147
+ "entryCount": 1
148
+ },
149
+ "limits": {
150
+ "maximumExtractedBytes": 1,
151
+ "maximumEntries": 1,
152
+ "maximumPathMetadataBytes": 134217728
153
+ }
154
+ },
155
+ {
156
+ "id": "reject-backslash-path",
157
+ "valid": false,
158
+ "archiveBase64": "H4sIAAAAAAACA0vJLIpJLU5OLEhloBkwMDAwMDMxAdMGBgboNCbb0NDI0JBBwYCBDqC0uCSxiMHAgBqeRPbcKBgFo2AUDHIAAG7HFrUABgAA",
159
+ "expectedMetadata": {
160
+ "sha256": "17b6a654ed4ccf30b4e1e7398b8147f6befd67079c76f754df1decd8c2301020",
161
+ "sizeBytes": 81,
162
+ "extractedSizeBytes": 0,
163
+ "entryCount": 1
164
+ },
165
+ "limits": {
166
+ "maximumExtractedBytes": 1,
167
+ "maximumEntries": 1,
168
+ "maximumPathMetadataBytes": 134217728
169
+ }
170
+ },
171
+ {
172
+ "id": "reject-empty-path-segment",
173
+ "valid": false,
174
+ "archiveBase64": "H4sIAAAAAAACA0vJLNLXTy1OTixIZaAVMDAwMDAzMQHTBgYG6DQm29DQyNCYQcGAgQ6gtLgksYjBwIAankT23CgYBaNgFAxyAAArduTkAAYAAA==",
175
+ "expectedMetadata": {
176
+ "sha256": "a68da1aff6657540237a7fb7b5e9e13f605f61d31bbd138ec15a1b2a80da4219",
177
+ "sizeBytes": 82,
178
+ "extractedSizeBytes": 0,
179
+ "entryCount": 1
180
+ },
181
+ "limits": {
182
+ "maximumExtractedBytes": 1,
183
+ "maximumEntries": 1,
184
+ "maximumPathMetadataBytes": 134217728
185
+ }
186
+ },
187
+ {
188
+ "id": "reject-invalid-utf8-path",
189
+ "valid": false,
190
+ "archiveBase64": "H4sIAAAAAAACA/vPQHtgYGBgYGZiAqYNDAzQaSxsc1NzEwYFAzq4jaG0uCSxiMHAgBqeRPbcKBgFo2AUDHIAAF2Gq+UABgAA",
191
+ "expectedMetadata": {
192
+ "sha256": "83ca74440cfd6f7ce65deb83ec5c5e5795d216e9434ce312c19846ad14cee68d",
193
+ "sizeBytes": 72,
194
+ "extractedSizeBytes": 0,
195
+ "entryCount": 1
196
+ },
197
+ "limits": {
198
+ "maximumExtractedBytes": 1,
199
+ "maximumEntries": 1,
200
+ "maximumPathMetadataBytes": 134217728
201
+ }
202
+ },
203
+ {
204
+ "id": "reject-hardlink",
205
+ "valid": false,
206
+ "archiveBase64": "H4sIAAAAAAACA8vJzMtOTWGgKTAwMDAwMzEB0wYGBug0JtvQ0NTchEHBsCSxKD21hLaOKy0uSSxiMDCghieRPTcKRsEoGAWDHAAAJo48VgAGAAA=",
207
+ "expectedMetadata": {
208
+ "sha256": "0097d856f0901673db4db5ce141cae748fd424576af66d71bf151ab3d80c7bcc",
209
+ "sizeBytes": 83,
210
+ "extractedSizeBytes": 0,
211
+ "entryCount": 1
212
+ },
213
+ "limits": {
214
+ "maximumExtractedBytes": 1,
215
+ "maximumEntries": 1,
216
+ "maximumPathMetadataBytes": 134217728
217
+ }
218
+ },
219
+ {
220
+ "id": "reject-symlink-escape",
221
+ "valid": false,
222
+ "archiveBase64": "H4sIAAAAAAACA8vJzMtmoDEwMDAwMDMxAdMGBgboNCbb0NDE1JBBwUhPTz+1ODmxIJWGjistLkksYjAwoIYnkT03CkbBKBgFgxwAAPhfxkQABgAA",
223
+ "expectedMetadata": {
224
+ "sha256": "e41a6325058b02f3500fd89c7effd715060319a21137aecf2e6470a743081f97",
225
+ "sizeBytes": 84,
226
+ "extractedSizeBytes": 0,
227
+ "entryCount": 1
228
+ },
229
+ "limits": {
230
+ "maximumExtractedBytes": 1,
231
+ "maximumEntries": 1,
232
+ "maximumPathMetadataBytes": 134217728
233
+ }
234
+ },
235
+ {
236
+ "id": "reject-symlink-chain-escape",
237
+ "valid": false,
238
+ "archiveBase64": "H4sIAAAAAAACA0vJLNLPz0tloCUwMDAwMDMxAdMGBgboNCbb0NDEyIRBwUhPT7+kPJ+mbmMoLS5JLGIwMKCGJ5E9N0QAzcOXvPg3NjKFxH9qcXJiQepo/I+CUTAKRgG1AQDoBaYjAAgAAA==",
239
+ "expectedMetadata": {
240
+ "sha256": "0d269b4775097ad0a14f314859abaa03d8f9d0732b2a8641de72dc7be0ad19a3",
241
+ "sizeBytes": 106,
242
+ "extractedSizeBytes": 0,
243
+ "entryCount": 2
244
+ },
245
+ "limits": {
246
+ "maximumExtractedBytes": 1,
247
+ "maximumEntries": 2,
248
+ "maximumPathMetadataBytes": 134217728
249
+ }
250
+ },
251
+ {
252
+ "id": "reject-symlink-cycle",
253
+ "valid": false,
254
+ "archiveBase64": "H4sIAAAAAAACA8vPS2WgNTAwMDAwMzEB0wYGBug0JtvQwMTYmEHBqKQ8n+aOKy0uSSxiMDCghieRPTdEAD2CmOz4z6dD4hzh8T8KRsEoGLkAAMD/Ay8ACAAA",
255
+ "expectedMetadata": {
256
+ "sha256": "9c75551248a61d4acbabdf20440ab344298a8563aea7cede3f615eb9b09b6fb5",
257
+ "sizeBytes": 90,
258
+ "extractedSizeBytes": 0,
259
+ "entryCount": 2
260
+ },
261
+ "limits": {
262
+ "maximumExtractedBytes": 1,
263
+ "maximumEntries": 2,
264
+ "maximumPathMetadataBytes": 134217728
265
+ }
266
+ },
267
+ {
268
+ "id": "reject-bad-checksum",
269
+ "valid": false,
270
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwIzSCagrQjNP6QZpKzE+Ei9APCkIkfvYX8uq2VNnABCZtwRwzosuIoHcRA9opSYl4I6R+3EfUTT7NNSlvvr/ePw/QDiSg/3fXZozGWOM+Z8V6UIZxgAKAAA=",
271
+ "expectedMetadata": {
272
+ "sha256": "804a0fd6b7af9017cf9912d93a8830822a20331e84ca966b8169d7fd0255238a",
273
+ "sizeBytes": 107,
274
+ "extractedSizeBytes": 3,
275
+ "entryCount": 2
276
+ },
277
+ "limits": {
278
+ "maximumExtractedBytes": 3,
279
+ "maximumEntries": 2,
280
+ "maximumPathMetadataBytes": 134217728
281
+ }
282
+ },
283
+ {
284
+ "id": "reject-nonzero-entry-padding",
285
+ "valid": false,
286
+ "archiveBase64": "H4sIAAAAAAACA+3PsQmAMABE0XMTR/jBkH1SKAhWGsHxA1bBWgXxXvOvvWleRj0MIMV4FrgWCM1GBBiSevSCfSt5Fdxxsj33EUcnMzP7oQrFu3EEAAgAAA==",
287
+ "expectedMetadata": {
288
+ "sha256": "38dee6a03dd280fc8edfa8992055696da18c6a6d4b855dcf52f8347c6f4617f1",
289
+ "sizeBytes": 88,
290
+ "extractedSizeBytes": 1,
291
+ "entryCount": 1
292
+ },
293
+ "limits": {
294
+ "maximumExtractedBytes": 1,
295
+ "maximumEntries": 1,
296
+ "maximumPathMetadataBytes": 134217728
297
+ }
298
+ },
299
+ {
300
+ "id": "reject-invalid-terminator",
301
+ "valid": false,
302
+ "archiveBase64": "H4sIAAAAAAACA0vLzElloDEwMDAwMDMxAdMGBgboNCbb0MDA2JRBwYCBDqC0uCSxiMHAgBqeRPbcKBgFQwAwjgbBiAYA3VE6iwAGAAA=",
303
+ "expectedMetadata": {
304
+ "sha256": "0fc52d6dd15f8df1c3e4e98cce131f91102888bacf9d9b8ed4bc2f160625ca28",
305
+ "sizeBytes": 77,
306
+ "extractedSizeBytes": 0,
307
+ "entryCount": 1
308
+ },
309
+ "limits": {
310
+ "maximumExtractedBytes": 1,
311
+ "maximumEntries": 1,
312
+ "maximumPathMetadataBytes": 134217728
313
+ }
314
+ },
315
+ {
316
+ "id": "reject-decompressed-trailing-data",
317
+ "valid": false,
318
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwLBJJ6CuKM08oRukRWJ8JF6AeFIQIvexv5aLZk+NAUCKcUsA57zozBzIjfSAuVRRAu4YuR/3EUWzl74u9dX/h+P/ARwTOdj/zcmUyRhjzP90K70sfzABCgAA",
319
+ "expectedMetadata": {
320
+ "sha256": "fd581cf2ad2a0307922c348afe6253e6574aebe1ca8a8ece70f141acbda0c54e",
321
+ "sizeBytes": 108,
322
+ "extractedSizeBytes": 3,
323
+ "entryCount": 2
324
+ },
325
+ "limits": {
326
+ "maximumExtractedBytes": 3,
327
+ "maximumEntries": 2,
328
+ "maximumPathMetadataBytes": 134217728
329
+ }
330
+ },
331
+ {
332
+ "id": "reject-compressed-trailing-data",
333
+ "valid": false,
334
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwIzSCagrSjNPyQZpKzE+Ei9APCkIkfvYX8tFxVNnAJBi3BLAOS86MwdyEz2glZqVgDtG7sd9RFHxeahLffX/8fh/AMdEDvZ/d3kWMsYY8z8ryCS5xQAKAAAB",
335
+ "expectedMetadata": {
336
+ "sha256": "d5c771dfb5975c81cdbc6883abf3a02a7a6c6d01ecaf0d30c16b07966ed51678",
337
+ "sizeBytes": 108,
338
+ "extractedSizeBytes": 3,
339
+ "entryCount": 2
340
+ },
341
+ "limits": {
342
+ "maximumExtractedBytes": 3,
343
+ "maximumEntries": 2,
344
+ "maximumPathMetadataBytes": 134217728
345
+ }
346
+ },
347
+ {
348
+ "id": "reject-concatenated-gzip-member",
349
+ "valid": false,
350
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwIzSCagrSjNPyQZpKzE+Ei9APCkIkfvYX8tFxVNnAJBi3BLAOS86MwdyEz2glZqVgDtG7sd9RFHxeahLffX/8fh/AMdEDvZ/d3kWMsYY8z8ryCS5xQAKAAAfiwgAAAAAAAIDAwAAAAAAAAAAAA==",
351
+ "expectedMetadata": {
352
+ "sha256": "2fd471bcdc0d9dfa46b65b2d5ddd4952e0dc6a45c0e5e7e2bcac917a284ead82",
353
+ "sizeBytes": 127,
354
+ "extractedSizeBytes": 3,
355
+ "entryCount": 2
356
+ },
357
+ "limits": {
358
+ "maximumExtractedBytes": 3,
359
+ "maximumEntries": 2,
360
+ "maximumPathMetadataBytes": 134217728
361
+ }
362
+ },
363
+ {
364
+ "id": "reject-truncated-gzip",
365
+ "valid": false,
366
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwIzSCagrSjNPyQZpKzE+Ei9APCkIkfvYX8tFxVNnAJBi3BLAOS86MwdyEz2glZqVgDtG7sd9RFHxeahLffX/8fh/AMdEDvZ/d3kWMsYY8z8ryCS5xQAK",
367
+ "expectedMetadata": {
368
+ "sha256": "15f3fa1c4ec79da651a47ba5e43cd1283f91f8f7ccc1e2117fe09ead1be672c8",
369
+ "sizeBytes": 105,
370
+ "extractedSizeBytes": 3,
371
+ "entryCount": 2
372
+ },
373
+ "limits": {
374
+ "maximumExtractedBytes": 3,
375
+ "maximumEntries": 2,
376
+ "maximumPathMetadataBytes": 134217728
377
+ }
378
+ },
379
+ {
380
+ "id": "reject-extracted-byte-limit",
381
+ "valid": false,
382
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwIzSCagrSjNPyQZpKzE+Ei9APCkIkfvYX8tFxVNnAJBi3BLAOS86MwdyEz2glZqVgDtG7sd9RFHxeahLffX/8fh/AMdEDvZ/d3kWMsYY8z8ryCS5xQAKAAA=",
383
+ "expectedMetadata": {
384
+ "sha256": "42424e38de46f7c0a92e382d71b41cf4e996cce94dfc8d7637aba7c0066c2500",
385
+ "sizeBytes": 107,
386
+ "extractedSizeBytes": 3,
387
+ "entryCount": 2
388
+ },
389
+ "limits": {
390
+ "maximumExtractedBytes": 2,
391
+ "maximumEntries": 2,
392
+ "maximumPathMetadataBytes": 134217728
393
+ }
394
+ },
395
+ {
396
+ "id": "reject-entry-limit",
397
+ "valid": false,
398
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwIzSCagrSjNPyQZpKzE+Ei9APCkIkfvYX8tFxVNnAJBi3BLAOS86MwdyEz2glZqVgDtG7sd9RFHxeahLffX/8fh/AMdEDvZ/d3kWMsYY8z8ryCS5xQAKAAA=",
399
+ "expectedMetadata": {
400
+ "sha256": "42424e38de46f7c0a92e382d71b41cf4e996cce94dfc8d7637aba7c0066c2500",
401
+ "sizeBytes": 107,
402
+ "extractedSizeBytes": 3,
403
+ "entryCount": 2
404
+ },
405
+ "limits": {
406
+ "maximumExtractedBytes": 3,
407
+ "maximumEntries": 1,
408
+ "maximumPathMetadataBytes": 134217728
409
+ }
410
+ },
411
+ {
412
+ "id": "reject-path-metadata-limit",
413
+ "valid": false,
414
+ "archiveBase64": "H4sIAAAAAAACA+3RwQ2AMAwDwIzSCagrSjNPyQZpKzE+Ei9APCkIkfvYX8tFxVNnAJBi3BLAOS86MwdyEz2glZqVgDtG7sd9RFHxeahLffX/8fh/AMdEDvZ/d3kWMsYY8z8ryCS5xQAKAAA=",
415
+ "expectedMetadata": {
416
+ "sha256": "42424e38de46f7c0a92e382d71b41cf4e996cce94dfc8d7637aba7c0066c2500",
417
+ "sizeBytes": 107,
418
+ "extractedSizeBytes": 3,
419
+ "entryCount": 2
420
+ },
421
+ "limits": {
422
+ "maximumExtractedBytes": 3,
423
+ "maximumEntries": 2,
424
+ "maximumPathMetadataBytes": 11
425
+ },
426
+ "pathMetadataBytes": 12
427
+ },
428
+ {
429
+ "id": "reject-pax-path-metadata-limit",
430
+ "valid": false,
431
+ "archiveBase64": "H4sIAAAAAAACA+3Wuw7CIBQG4DP7FLyAeqAXJndH38AcEVsTegnFpI9v6qKpgw7F6/kWSBkIIf9fWuq3hWt25Lalpb31MD1ExDxNLyMijsdh8TofvkuVJxpEAS9w6gJ5QJzikLeH+xKZEqapKluHFT1pBuxndN4sY+/xMP93c621BJFx/qPbUL++9H63PBydfc/9J2rc/1LnIHq+/+hULloK5WroAdfUxbymyi5CH7jl/0LryNiycXFefs/2fzLKv0wxAYGc/+hoZzgEf8ycvLd1+Kz3n0wRMxDq7qfE+WeMsamcAcVtIg0AFAAA",
432
+ "expectedMetadata": {
433
+ "sha256": "941f4162232b5af9c20fe15278e320e8fe5429a508de9f79621b38a0c8e13316",
434
+ "sizeBytes": 237,
435
+ "extractedSizeBytes": 3,
436
+ "entryCount": 3
437
+ },
438
+ "limits": {
439
+ "maximumExtractedBytes": 3,
440
+ "maximumEntries": 3,
441
+ "maximumPathMetadataBytes": 43
442
+ },
443
+ "pathMetadataBytes": 44
444
+ }
445
+ ]
446
+ }
@@ -0,0 +1,31 @@
1
+ spec: 2.0.0
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ permissions:
7
+ source: read
8
+ artifacts: none
9
+ caches: none
10
+ images: candidate
11
+ npm: none
12
+ releaseAssets: none
13
+ jobs:
14
+ image:
15
+ runner:
16
+ profile: oci-image
17
+ labels:
18
+ - builder
19
+ secrets:
20
+ - name: npm-token
21
+ environment: NPM_TOKEN
22
+ build:
23
+ context: .
24
+ dockerfile: Dockerfile
25
+ platforms:
26
+ - linux/amd64
27
+ buildArgs:
28
+ NPM_TOKEN: placeholder
29
+ secrets:
30
+ - id: npmrc
31
+ environment: NPM_TOKEN
@@ -0,0 +1,36 @@
1
+ spec: 2.0.0
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ permissions:
7
+ source: read
8
+ artifacts: none
9
+ caches: none
10
+ images: candidate
11
+ npm: none
12
+ releaseAssets: none
13
+ jobs:
14
+ image:
15
+ runner:
16
+ profile: oci-image
17
+ labels:
18
+ - builder
19
+ build:
20
+ context: .
21
+ dockerfile: Dockerfile
22
+ platforms:
23
+ - linux/amd64
24
+ smoke:
25
+ runner:
26
+ profile: oci
27
+ labels:
28
+ - linux
29
+ execution:
30
+ profile: oci
31
+ image:
32
+ candidate: image
33
+ steps:
34
+ - run:
35
+ - /usr/local/bin/app
36
+ - --self-test
@@ -0,0 +1,42 @@
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: none
12
+ caches: none
13
+ images: none
14
+ npm: none
15
+ releaseAssets: none
16
+ jobs:
17
+ sign:
18
+ triggers:
19
+ - tag
20
+ runner:
21
+ profile: oci
22
+ labels:
23
+ - linux
24
+ execution:
25
+ profile: oci
26
+ image: registry.example/ci/node@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
27
+ steps:
28
+ - run:
29
+ - ./scripts/sign.sh
30
+ verify:
31
+ needs:
32
+ - sign
33
+ runner:
34
+ profile: oci
35
+ labels:
36
+ - linux
37
+ execution:
38
+ profile: oci
39
+ image: registry.example/ci/node@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
40
+ steps:
41
+ - run:
42
+ - ./scripts/verify.sh
@@ -0,0 +1,34 @@
1
+ spec: 2.0.0
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ permissions:
7
+ source: read
8
+ artifacts: none
9
+ caches: none
10
+ images: none
11
+ npm: none
12
+ releaseAssets: none
13
+ jobs:
14
+ 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
+ npmRead:
27
+ - registry: https://npm.example.com
28
+ scopes:
29
+ - '@example_private'
30
+ steps:
31
+ - run:
32
+ - pnpm
33
+ - install
34
+ - --frozen-lockfile
@@ -0,0 +1,57 @@
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/node@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
25
+ steps:
26
+ - run:
27
+ - pnpm
28
+ - test
29
+ pack:
30
+ triggers:
31
+ - push
32
+ runner:
33
+ profile: oci
34
+ labels:
35
+ - linux
36
+ execution:
37
+ profile: oci
38
+ image: registry.example/ci/node@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
39
+ steps:
40
+ - run:
41
+ - pnpm
42
+ - pack
43
+ - --pack-destination
44
+ - .nogit/package
45
+ artifacts:
46
+ - name: package
47
+ path: .nogit/package
48
+ when: success
49
+ required: true
50
+ maximumBytes: 104857600
51
+ maximumExtractedBytes: 104857600
52
+ maximumEntries: 1
53
+ publish:
54
+ releaseAssets:
55
+ - artifact:
56
+ job: pack
57
+ name: package
@@ -0,0 +1,28 @@
1
+ spec: 2.0.0
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ permissions:
7
+ source: read
8
+ artifacts: none
9
+ caches: none
10
+ images: none
11
+ npm: none
12
+ releaseAssets: none
13
+ jobs:
14
+ test:
15
+ runner:
16
+ profile: oci
17
+ labels:
18
+ - linux
19
+ execution:
20
+ profile: oci
21
+ image: registry.example/ci/node@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
22
+ resources:
23
+ memoryBytes: 1073741824
24
+ sharedMemoryBytes: 2147483648
25
+ steps:
26
+ - run:
27
+ - pnpm
28
+ - test