@ship.zone/ci-spec 2.0.0 → 2.1.1

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 (36) hide show
  1. package/changelog.md +33 -0
  2. package/conformance/compile-cases.json +822 -2
  3. package/conformance/runner-job-cases.json +714 -0
  4. package/conformance/runner-job-cases.schema.json +134 -0
  5. package/conformance/runner-jobs/incoherent/artifact-maximum-above-limit.json +91 -0
  6. package/conformance/runner-jobs/incoherent/build-secret-unknown-target.json +104 -0
  7. package/conformance/runner-jobs/incoherent/cache-count-above-limit.json +91 -0
  8. package/conformance/runner-jobs/incoherent/command-argument-above-limit.json +70 -0
  9. package/conformance/runner-jobs/incoherent/environment-above-limit.json +206 -0
  10. package/conformance/runner-jobs/incoherent/plan-digest-mismatch.json +70 -0
  11. package/conformance/runner-jobs/incoherent/precedence-limit-before-digest.json +70 -0
  12. package/conformance/runner-jobs/incoherent/reserved-prefix-environment.json +71 -0
  13. package/conformance/runner-jobs/incoherent/reserved-prefix-secret-target.json +72 -0
  14. package/conformance/runner-jobs/incoherent/reserved-variable-missing.json +69 -0
  15. package/conformance/runner-jobs/incoherent/reserved-variable-not-canonical.json +70 -0
  16. package/conformance/runner-jobs/incoherent/secret-target-environment-duplicate.json +72 -0
  17. package/conformance/runner-jobs/incoherent/secret-target-without-build-secret.json +101 -0
  18. package/conformance/runner-jobs/incoherent/secret-value-too-short.json +72 -0
  19. package/conformance/runner-jobs/incoherent/shared-memory-above-memory.json +71 -0
  20. package/conformance/runner-jobs/incoherent/source-above-limit.json +70 -0
  21. package/conformance/runner-jobs/invalid/artifacts-feature-missing.json +91 -0
  22. package/conformance/runner-jobs/invalid/artifacts-none-permission.json +91 -0
  23. package/conformance/runner-jobs/invalid/build-without-push-permission.json +100 -0
  24. package/conformance/runner-jobs/invalid/read-write-cache-read-permission.json +91 -0
  25. package/conformance/runner-jobs/invalid/source-feature-missing.json +70 -0
  26. package/conformance/runner-jobs/invalid/vm-without-platform.json +81 -0
  27. package/dist_ts/00_commitinfo_data.js +1 -1
  28. package/dist_ts/constants.d.ts +42 -0
  29. package/dist_ts/constants.js +57 -1
  30. package/package.json +4 -2
  31. package/readme.md +13 -4
  32. package/spec/ci-actions.md +12 -5
  33. package/spec/runner-protocol.md +32 -1
  34. package/spec/runner.openapi.json +1 -1
  35. package/ts/00_commitinfo_data.ts +1 -1
  36. package/ts/constants.ts +65 -0
@@ -0,0 +1,134 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://ship.zone/spec/ci/conformance/runner-job-cases.schema.json",
4
+ "title": "ship.zone compiled runner job coherence vectors",
5
+ "description": "Conformance vectors for compiled runner job coherence: the job failure codes in precedence order and cases that bind a compiled job, with its secret values inserted, to coherent or to the expected job failure code.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "spec",
10
+ "failureCodes",
11
+ "cases"
12
+ ],
13
+ "properties": {
14
+ "spec": {
15
+ "$ref": "../schemas/runner-job.schema.json#/$defs/specVersion"
16
+ },
17
+ "failureCodes": {
18
+ "description": "Every job failure code in the precedence order of spec/runner-protocol.md, Job Coherence.",
19
+ "type": "array",
20
+ "minItems": 1,
21
+ "uniqueItems": true,
22
+ "items": {
23
+ "$ref": "#/$defs/failureCode"
24
+ }
25
+ },
26
+ "cases": {
27
+ "type": "array",
28
+ "minItems": 1,
29
+ "items": {
30
+ "$ref": "#/$defs/jobCase"
31
+ }
32
+ }
33
+ },
34
+ "$defs": {
35
+ "identifier": {
36
+ "$ref": "../schemas/runner-job.schema.json#/$defs/identifier"
37
+ },
38
+ "failureCode": {
39
+ "enum": [
40
+ "spec_incompatible",
41
+ "job_schema_invalid",
42
+ "job_secret_incoherent",
43
+ "job_limit_incoherent",
44
+ "job_resources_incoherent",
45
+ "job_environment_incoherent",
46
+ "job_command_limit_exceeded",
47
+ "job_secret_inadmissible",
48
+ "job_digest_mismatch"
49
+ ]
50
+ },
51
+ "jobSource": {
52
+ "description": "The job: a packaged runner job fixture, or an inline JSON document.",
53
+ "oneOf": [
54
+ {
55
+ "type": "object",
56
+ "additionalProperties": false,
57
+ "required": [
58
+ "fixture"
59
+ ],
60
+ "properties": {
61
+ "fixture": {
62
+ "type": "string",
63
+ "pattern": "^conformance/runner-jobs/(?:valid|invalid|incoherent)/[a-z0-9-]+\\.json$"
64
+ }
65
+ }
66
+ },
67
+ {
68
+ "type": "object",
69
+ "additionalProperties": false,
70
+ "required": [
71
+ "document"
72
+ ],
73
+ "properties": {
74
+ "document": true
75
+ }
76
+ }
77
+ ]
78
+ },
79
+ "jobCase": {
80
+ "description": "A compiled job with its secret values inserted, and the outcome of checking it: coherent, or the job failure code of the first rule it violates.",
81
+ "type": "object",
82
+ "additionalProperties": false,
83
+ "required": [
84
+ "id",
85
+ "job",
86
+ "expected"
87
+ ],
88
+ "properties": {
89
+ "id": {
90
+ "$ref": "#/$defs/identifier"
91
+ },
92
+ "description": {
93
+ "type": "string",
94
+ "minLength": 1
95
+ },
96
+ "job": {
97
+ "$ref": "#/$defs/jobSource"
98
+ },
99
+ "expected": {
100
+ "oneOf": [
101
+ {
102
+ "type": "object",
103
+ "additionalProperties": false,
104
+ "required": [
105
+ "outcome"
106
+ ],
107
+ "properties": {
108
+ "outcome": {
109
+ "const": "coherent"
110
+ }
111
+ }
112
+ },
113
+ {
114
+ "type": "object",
115
+ "additionalProperties": false,
116
+ "required": [
117
+ "outcome",
118
+ "code"
119
+ ],
120
+ "properties": {
121
+ "outcome": {
122
+ "const": "incoherent"
123
+ },
124
+ "code": {
125
+ "$ref": "#/$defs/failureCode"
126
+ }
127
+ }
128
+ }
129
+ ]
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "spec": "2.0.0",
3
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
4
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
5
+ "compiledPlanDigest": "9a8661778a68db46c2b976334358d5917f51be15d5b4c80bc9fb934e7a366f99",
6
+ "requirements": {
7
+ "executionProfile": "oci",
8
+ "isolation": "container",
9
+ "labels": ["linux"],
10
+ "features": ["source.tar-gz", "artifacts", "caches"],
11
+ "limits": {
12
+ "maximumSourceArchiveBytes": 1048576,
13
+ "maximumSourceExtractedBytes": 4194304,
14
+ "maximumSourceEntries": 1000,
15
+ "maximumArtifactArchiveBytes": 104857600,
16
+ "maximumArtifactExtractedBytes": 524288000,
17
+ "maximumArtifactEntries": 10000,
18
+ "maximumArtifacts": 1,
19
+ "maximumCacheArchiveBytes": 1073741824,
20
+ "maximumCacheExtractedBytes": 4294967296,
21
+ "maximumCacheEntries": 100000,
22
+ "maximumCaches": 1,
23
+ "maximumLogChunkBytes": 65536,
24
+ "maximumTotalLogBytes": 10485760,
25
+ "maximumWorkspaceBytes": 8589934592,
26
+ "maximumWorkspaceEntries": 100000
27
+ }
28
+ },
29
+ "permissions": {
30
+ "source": "read",
31
+ "artifacts": "write",
32
+ "caches": "read-write",
33
+ "images": "none"
34
+ },
35
+ "network": {
36
+ "mode": "none"
37
+ },
38
+ "execution": {
39
+ "profile": "oci",
40
+ "image": "registry.example/ci@sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
41
+ "workingDirectory": "/workspace"
42
+ },
43
+ "steps": [
44
+ {
45
+ "name": "Test",
46
+ "command": ["pnpm", "test"],
47
+ "environment": {
48
+ "CI": "true",
49
+ "SHIPZONE_CI_INPUTS_JSON": "{}",
50
+ "SHIPZONE_CI_MATRIX_JSON": "{}"
51
+ }
52
+ }
53
+ ],
54
+ "source": {
55
+ "format": "tar.gz",
56
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
57
+ "sizeBytes": 1024,
58
+ "extractedSizeBytes": 4096,
59
+ "entryCount": 4
60
+ },
61
+ "secrets": {},
62
+ "timeoutMs": 3600000,
63
+ "resources": {
64
+ "memoryBytes": 268435456,
65
+ "cpus": 1,
66
+ "pids": 256
67
+ },
68
+ "artifacts": [
69
+ {
70
+ "name": "test-results",
71
+ "path": ".nogit/testlogs",
72
+ "format": "tar.gz",
73
+ "when": "failure",
74
+ "required": false,
75
+ "maximumBytes": 209715200,
76
+ "maximumExtractedBytes": 524288000,
77
+ "maximumEntries": 10000
78
+ }
79
+ ],
80
+ "caches": [
81
+ {
82
+ "name": "pnpm",
83
+ "key": "pnpm-store",
84
+ "paths": [".pnpm-store"],
85
+ "access": "read-write",
86
+ "maximumBytes": 1073741824,
87
+ "maximumExtractedBytes": 4294967296,
88
+ "maximumEntries": 100000
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "spec": "2.0.0",
3
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
4
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
5
+ "compiledPlanDigest": "fd16565c173045812935c81afa919258564b9a89aa79d10cfa6b7b3f177fe2cd",
6
+ "requirements": {
7
+ "executionProfile": "oci-image",
8
+ "isolation": "microvm",
9
+ "platform": "linux/arm64",
10
+ "labels": ["builder"],
11
+ "features": ["source.tar-gz", "caches"],
12
+ "limits": {
13
+ "maximumSourceArchiveBytes": 1048576,
14
+ "maximumSourceExtractedBytes": 4194304,
15
+ "maximumSourceEntries": 1000,
16
+ "maximumArtifactArchiveBytes": 0,
17
+ "maximumArtifactExtractedBytes": 0,
18
+ "maximumArtifactEntries": 0,
19
+ "maximumArtifacts": 0,
20
+ "maximumCacheArchiveBytes": 4294967296,
21
+ "maximumCacheExtractedBytes": 17179869184,
22
+ "maximumCacheEntries": 1000000,
23
+ "maximumCaches": 1,
24
+ "maximumLogChunkBytes": 65536,
25
+ "maximumTotalLogBytes": 10485760,
26
+ "maximumWorkspaceBytes": 21474836480,
27
+ "maximumWorkspaceEntries": 100000
28
+ }
29
+ },
30
+ "permissions": {
31
+ "source": "read",
32
+ "artifacts": "none",
33
+ "caches": "read-write",
34
+ "images": "push"
35
+ },
36
+ "network": {
37
+ "mode": "egress",
38
+ "allow": [
39
+ {
40
+ "host": "registry.npmjs.org",
41
+ "ports": [443]
42
+ }
43
+ ]
44
+ },
45
+ "build": {
46
+ "context": ".",
47
+ "dockerfile": "Dockerfile",
48
+ "target": "production",
49
+ "buildArgs": {
50
+ "NODE_ENV": "production"
51
+ },
52
+ "secrets": [
53
+ {
54
+ "id": "npmrc",
55
+ "environment": "NPM_TOKEN"
56
+ },
57
+ {
58
+ "id": "token",
59
+ "environment": "MISSING_TOKEN"
60
+ }
61
+ ],
62
+ "labels": {
63
+ "org.opencontainers.image.revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
64
+ "org.opencontainers.image.source": "https://code.foss.global/example/app",
65
+ "org.opencontainers.image.title": "app"
66
+ },
67
+ "baseImages": [
68
+ {
69
+ "name": "base",
70
+ "image": {
71
+ "candidate": "base-image"
72
+ }
73
+ }
74
+ ]
75
+ },
76
+ "source": {
77
+ "format": "tar.gz",
78
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
79
+ "sizeBytes": 1024,
80
+ "extractedSizeBytes": 4096,
81
+ "entryCount": 4
82
+ },
83
+ "secrets": {
84
+ "NPM_TOKEN": "resolved-secret-value"
85
+ },
86
+ "timeoutMs": 3600000,
87
+ "resources": {
88
+ "memoryBytes": 8589934592,
89
+ "cpus": 4,
90
+ "pids": 4096
91
+ },
92
+ "artifacts": [],
93
+ "caches": [
94
+ {
95
+ "name": "buildkit",
96
+ "key": "buildkit-linux-arm64",
97
+ "access": "read-write",
98
+ "maximumBytes": 4294967296,
99
+ "maximumExtractedBytes": 17179869184,
100
+ "maximumEntries": 1000000,
101
+ "retentionDays": 14
102
+ }
103
+ ]
104
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "spec": "2.0.0",
3
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
4
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
5
+ "compiledPlanDigest": "44d32c309c5198f061b0778f8dae4b78723d4c8701ea85ec7f070011027745f5",
6
+ "requirements": {
7
+ "executionProfile": "oci",
8
+ "isolation": "container",
9
+ "labels": ["linux"],
10
+ "features": ["source.tar-gz", "artifacts", "caches"],
11
+ "limits": {
12
+ "maximumSourceArchiveBytes": 1048576,
13
+ "maximumSourceExtractedBytes": 4194304,
14
+ "maximumSourceEntries": 1000,
15
+ "maximumArtifactArchiveBytes": 104857600,
16
+ "maximumArtifactExtractedBytes": 524288000,
17
+ "maximumArtifactEntries": 10000,
18
+ "maximumArtifacts": 1,
19
+ "maximumCacheArchiveBytes": 1073741824,
20
+ "maximumCacheExtractedBytes": 4294967296,
21
+ "maximumCacheEntries": 100000,
22
+ "maximumCaches": 0,
23
+ "maximumLogChunkBytes": 65536,
24
+ "maximumTotalLogBytes": 10485760,
25
+ "maximumWorkspaceBytes": 8589934592,
26
+ "maximumWorkspaceEntries": 100000
27
+ }
28
+ },
29
+ "permissions": {
30
+ "source": "read",
31
+ "artifacts": "write",
32
+ "caches": "read-write",
33
+ "images": "none"
34
+ },
35
+ "network": {
36
+ "mode": "none"
37
+ },
38
+ "execution": {
39
+ "profile": "oci",
40
+ "image": "registry.example/ci@sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
41
+ "workingDirectory": "/workspace"
42
+ },
43
+ "steps": [
44
+ {
45
+ "name": "Test",
46
+ "command": ["pnpm", "test"],
47
+ "environment": {
48
+ "CI": "true",
49
+ "SHIPZONE_CI_INPUTS_JSON": "{}",
50
+ "SHIPZONE_CI_MATRIX_JSON": "{}"
51
+ }
52
+ }
53
+ ],
54
+ "source": {
55
+ "format": "tar.gz",
56
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
57
+ "sizeBytes": 1024,
58
+ "extractedSizeBytes": 4096,
59
+ "entryCount": 4
60
+ },
61
+ "secrets": {},
62
+ "timeoutMs": 3600000,
63
+ "resources": {
64
+ "memoryBytes": 268435456,
65
+ "cpus": 1,
66
+ "pids": 256
67
+ },
68
+ "artifacts": [
69
+ {
70
+ "name": "test-results",
71
+ "path": ".nogit/testlogs",
72
+ "format": "tar.gz",
73
+ "when": "failure",
74
+ "required": false,
75
+ "maximumBytes": 104857600,
76
+ "maximumExtractedBytes": 524288000,
77
+ "maximumEntries": 10000
78
+ }
79
+ ],
80
+ "caches": [
81
+ {
82
+ "name": "pnpm",
83
+ "key": "pnpm-store",
84
+ "paths": [".pnpm-store"],
85
+ "access": "read-write",
86
+ "maximumBytes": 1073741824,
87
+ "maximumExtractedBytes": 4294967296,
88
+ "maximumEntries": 100000
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "spec": "2.0.0",
3
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
4
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
5
+ "compiledPlanDigest": "71be63b5e4ddbe4aef1e4519f9c37756807a5e49b9071514050793d4945021bd",
6
+ "requirements": {
7
+ "executionProfile": "oci",
8
+ "isolation": "container",
9
+ "labels": ["linux"],
10
+ "features": ["source.tar-gz"],
11
+ "limits": {
12
+ "maximumSourceArchiveBytes": 1048576,
13
+ "maximumSourceExtractedBytes": 4194304,
14
+ "maximumSourceEntries": 1000,
15
+ "maximumArtifactArchiveBytes": 0,
16
+ "maximumArtifactExtractedBytes": 0,
17
+ "maximumArtifactEntries": 0,
18
+ "maximumArtifacts": 0,
19
+ "maximumCacheArchiveBytes": 0,
20
+ "maximumCacheExtractedBytes": 0,
21
+ "maximumCacheEntries": 0,
22
+ "maximumCaches": 0,
23
+ "maximumLogChunkBytes": 65536,
24
+ "maximumTotalLogBytes": 10485760,
25
+ "maximumWorkspaceBytes": 268435456,
26
+ "maximumWorkspaceEntries": 100000
27
+ }
28
+ },
29
+ "permissions": {
30
+ "source": "read",
31
+ "artifacts": "none",
32
+ "caches": "none",
33
+ "images": "none"
34
+ },
35
+ "network": {
36
+ "mode": "none"
37
+ },
38
+ "execution": {
39
+ "profile": "oci",
40
+ "image": "registry.example/ci@sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
41
+ "workingDirectory": "/workspace"
42
+ },
43
+ "steps": [
44
+ {
45
+ "name": "Test",
46
+ "command": ["pnpm", "ééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééa"],
47
+ "environment": {
48
+ "CI": "true",
49
+ "SHIPZONE_CI_INPUTS_JSON": "{}",
50
+ "SHIPZONE_CI_MATRIX_JSON": "{}"
51
+ }
52
+ }
53
+ ],
54
+ "source": {
55
+ "format": "tar.gz",
56
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
57
+ "sizeBytes": 1024,
58
+ "extractedSizeBytes": 4096,
59
+ "entryCount": 4
60
+ },
61
+ "secrets": {},
62
+ "timeoutMs": 60000,
63
+ "resources": {
64
+ "memoryBytes": 268435456,
65
+ "cpus": 1,
66
+ "pids": 256
67
+ },
68
+ "artifacts": [],
69
+ "caches": []
70
+ }