code-foundry 0.24.1 → 0.26.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.
@@ -1,296 +0,0 @@
1
- name: Code Foundry Security
2
-
3
- on:
4
- workflow_call:
5
- inputs:
6
- runtime-repository:
7
- description: Repository containing the Code Foundry runtime.
8
- required: false
9
- type: string
10
- default: 0xPlayerOne/code-foundry
11
- runtime-ref:
12
- description: Code Foundry runtime tag or ref.
13
- required: false
14
- type: string
15
- default: v0.20.2
16
- runner:
17
- description: Runner used by Security jobs.
18
- required: false
19
- type: string
20
- default: ubuntu-slim
21
-
22
- permissions:
23
- contents: read
24
-
25
- env:
26
- REPO_FOUNDRY_PROFILE: ${{ vars.REPO_FOUNDRY_PROFILE }}
27
- REPO_FOUNDRY_LANGUAGES: ${{ vars.REPO_FOUNDRY_LANGUAGES }}
28
- REPO_FOUNDRY_FEATURES: ${{ vars.REPO_FOUNDRY_FEATURES }}
29
- REPO_FOUNDRY_PACKAGE_MANAGER: ${{ vars.REPO_FOUNDRY_PACKAGE_MANAGER }}
30
- REPO_FOUNDRY_CACHE_PACKAGES: ${{ vars.REPO_FOUNDRY_CACHE_PACKAGES || 'auto' }}
31
- REPO_FOUNDRY_BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before || '' }}
32
-
33
- concurrency:
34
- group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
35
- cancel-in-progress: true
36
-
37
- jobs:
38
- profile:
39
- name: Profile
40
- runs-on: ${{ inputs.runner }}
41
- timeout-minutes: 10
42
- outputs:
43
- javascript: ${{ steps.profile.outputs.javascript }}
44
- rust: ${{ steps.profile.outputs.rust }}
45
- python: ${{ steps.profile.outputs.python }}
46
- python_requirements: ${{ steps.profile.outputs.python_requirements }}
47
- steps:
48
- - name: Checkout
49
- uses: actions/checkout@v7
50
- with:
51
- fetch-depth: 2
52
- filter: blob:none
53
- sparse-checkout: |
54
- .github
55
- .mise.toml
56
- mise.lock
57
- .npmrc
58
- .pnpmfile.cjs
59
- .yarnrc*
60
- **/package.json
61
- **/bun.lock
62
- **/bun.lockb
63
- **/pnpm-lock.yaml
64
- **/yarn.lock
65
- **/package-lock.json
66
- **/Cargo.toml
67
- **/Cargo.lock
68
- **/.cargo/**
69
- **/pyproject.toml
70
- **/requirements*.txt
71
- **/setup.py
72
- **/setup.cfg
73
- **/Pipfile
74
- **/Pipfile.lock
75
- **/poetry.lock
76
- **/uv.lock
77
- sparse-checkout-cone-mode: false
78
- - name: Runtime
79
- uses: actions/checkout@v7
80
- with:
81
- repository: ${{ inputs.runtime-repository }}
82
- ref: ${{ inputs.runtime-ref }}
83
- path: .code-foundry
84
- sparse-checkout: |
85
- .github/actions
86
- .github/scripts
87
- - name: Install runtime
88
- run: |
89
- mkdir -p .github/actions .github/scripts
90
- cp -R .code-foundry/.github/actions/. .github/actions/
91
- cp -R .code-foundry/.github/scripts/. .github/scripts/
92
- - name: Detect
93
- id: profile
94
- run: bash .github/scripts/security.sh profile >> "$GITHUB_OUTPUT"
95
-
96
- dependency-audit-javascript:
97
- name: Dependency Audit (JavaScript)
98
- runs-on: ${{ inputs.runner }}
99
- timeout-minutes: 20
100
- steps:
101
- - name: Checkout
102
- uses: actions/checkout@v7
103
- with:
104
- filter: blob:none
105
- sparse-checkout: |
106
- .github
107
- .mise.toml
108
- mise.lock
109
- .npmrc
110
- .pnpmfile.cjs
111
- .yarnrc*
112
- **/package.json
113
- **/bun.lock
114
- **/bun.lockb
115
- **/pnpm-lock.yaml
116
- **/yarn.lock
117
- **/package-lock.json
118
- sparse-checkout-cone-mode: false
119
- - name: Runtime
120
- uses: actions/checkout@v7
121
- with:
122
- repository: ${{ inputs.runtime-repository }}
123
- ref: ${{ inputs.runtime-ref }}
124
- path: .code-foundry
125
- sparse-checkout: |
126
- .github/actions
127
- .github/scripts
128
- - name: Install runtime
129
- run: |
130
- mkdir -p .github/actions .github/scripts
131
- cp -R .code-foundry/.github/actions/. .github/actions/
132
- cp -R .code-foundry/.github/scripts/. .github/scripts/
133
- - name: Detect
134
- id: applicability
135
- run: bash .github/scripts/security.sh should_run javascript >> "$GITHUB_OUTPUT"
136
- - name: Setup
137
- if: steps.applicability.outputs.applicable == 'true'
138
- uses: ./.github/actions/setup
139
- with:
140
- mise-scope: javascript
141
- cache-save: ${{ github.event_name != 'pull_request' }}
142
- - name: Audit dependencies
143
- if: steps.applicability.outputs.applicable == 'true'
144
- run: bash .github/scripts/security.sh audit javascript
145
-
146
- dependency-audit-rust:
147
- name: Dependency Audit (Rust)
148
- runs-on: ${{ inputs.runner }}
149
- timeout-minutes: 20
150
- steps:
151
- - name: Checkout
152
- uses: actions/checkout@v7
153
- with:
154
- filter: blob:none
155
- sparse-checkout: |
156
- .github
157
- .mise.toml
158
- mise.lock
159
- **/Cargo.toml
160
- **/Cargo.lock
161
- **/.cargo/**
162
- sparse-checkout-cone-mode: false
163
- - name: Runtime
164
- uses: actions/checkout@v7
165
- with:
166
- repository: ${{ inputs.runtime-repository }}
167
- ref: ${{ inputs.runtime-ref }}
168
- path: .code-foundry
169
- sparse-checkout: |
170
- .github/actions
171
- .github/scripts
172
- - name: Install runtime
173
- run: |
174
- mkdir -p .github/actions .github/scripts
175
- cp -R .code-foundry/.github/actions/. .github/actions/
176
- cp -R .code-foundry/.github/scripts/. .github/scripts/
177
- - name: Detect
178
- id: applicability
179
- run: bash .github/scripts/security.sh should_run rust >> "$GITHUB_OUTPUT"
180
- - name: Check Rust
181
- id: system-rust
182
- if: steps.applicability.outputs.applicable == 'true'
183
- shell: bash
184
- run: |
185
- if command -v cargo >/dev/null 2>&1 && command -v rustc >/dev/null 2>&1; then
186
- cargo --version
187
- rustc --version
188
- echo 'available=true' >> "$GITHUB_OUTPUT"
189
- else
190
- echo 'available=false' >> "$GITHUB_OUTPUT"
191
- fi
192
- - name: Setup
193
- if: >-
194
- steps.applicability.outputs.applicable == 'true' &&
195
- steps.system-rust.outputs.available != 'true'
196
- uses: ./.github/actions/setup
197
- with:
198
- mise-scope: rust
199
- cache-save: ${{ github.event_name != 'pull_request' }}
200
- - name: Install cargo-audit
201
- if: steps.applicability.outputs.applicable == 'true'
202
- uses: taiki-e/install-action@v2
203
- with:
204
- tool: cargo-audit
205
- - name: Audit dependencies
206
- if: steps.applicability.outputs.applicable == 'true'
207
- run: bash .github/scripts/security.sh audit rust
208
-
209
- dependency-audit-python:
210
- name: Dependency Audit (Python) / ${{ matrix.requirement }}
211
- needs: profile
212
- if: >-
213
- ${{ needs.profile.result == 'success' &&
214
- needs.profile.outputs.python == 'true' &&
215
- needs.profile.outputs.python_requirements != '["none"]' }}
216
- strategy:
217
- fail-fast: false
218
- max-parallel: 8
219
- matrix:
220
- requirement: ${{ fromJSON(needs.profile.outputs.python_requirements) }}
221
- runs-on: ${{ inputs.runner }}
222
- timeout-minutes: 20
223
- env:
224
- REPO_FOUNDRY_PYTHON_REQUIREMENT: ${{ matrix.requirement }}
225
- steps:
226
- - name: Checkout
227
- uses: actions/checkout@v7
228
- with:
229
- filter: blob:none
230
- sparse-checkout: |
231
- .github
232
- .mise.toml
233
- mise.lock
234
- **/pyproject.toml
235
- **/requirements*.txt
236
- **/setup.py
237
- **/setup.cfg
238
- **/Pipfile
239
- **/Pipfile.lock
240
- **/poetry.lock
241
- **/uv.lock
242
- sparse-checkout-cone-mode: false
243
- - name: Runtime
244
- uses: actions/checkout@v7
245
- with:
246
- repository: ${{ inputs.runtime-repository }}
247
- ref: ${{ inputs.runtime-ref }}
248
- path: .code-foundry
249
- sparse-checkout: |
250
- .github/actions
251
- .github/scripts
252
- - name: Install runtime
253
- run: |
254
- mkdir -p .github/actions .github/scripts
255
- cp -R .code-foundry/.github/actions/. .github/actions/
256
- cp -R .code-foundry/.github/scripts/. .github/scripts/
257
- - name: Setup
258
- uses: ./.github/actions/setup
259
- with:
260
- mise-scope: python
261
- cache-save: ${{ github.event_name != 'pull_request' }}
262
- - name: Audit dependencies
263
- run: bash .github/scripts/security.sh audit python
264
-
265
- dependency-audit-python-gate:
266
- name: Dependency Audit (Python)
267
- needs: [profile, dependency-audit-python]
268
- if: always()
269
- runs-on: ${{ inputs.runner }}
270
- timeout-minutes: 5
271
- steps:
272
- - name: Gate
273
- env:
274
- PROFILE_RESULT: ${{ needs.profile.result }}
275
- AUDIT_RESULT: ${{ needs.dependency-audit-python.result }}
276
- run: |
277
- if [ "$PROFILE_RESULT" != success ]; then
278
- echo "Python audit profile failed: $PROFILE_RESULT" >&2
279
- exit 1
280
- fi
281
- case "$AUDIT_RESULT" in
282
- success|skipped) exit 0 ;;
283
- *) echo "Python dependency audit failed: $AUDIT_RESULT" >&2; exit 1 ;;
284
- esac
285
-
286
- dependency-review:
287
- name: Dependency Review
288
- if: ${{ github.event_name == 'pull_request' && !github.event.repository.private }}
289
- runs-on: ${{ inputs.runner }}
290
- timeout-minutes: 10
291
- steps:
292
- - name: Review
293
- uses: actions/dependency-review-action@v5
294
- with:
295
- fail-on-severity: high
296
- license-check: true
@@ -1,253 +0,0 @@
1
- name: Code Foundry Test
2
-
3
- on:
4
- workflow_call:
5
- inputs:
6
- runtime-repository:
7
- description: Repository containing the Code Foundry runtime.
8
- required: false
9
- type: string
10
- default: 0xPlayerOne/code-foundry
11
- runtime-ref:
12
- description: Code Foundry runtime tag or ref.
13
- required: false
14
- type: string
15
- default: v0.20.2
16
- runner:
17
- description: Runner used by non-unit test jobs.
18
- required: false
19
- type: string
20
- default: ubuntu-latest
21
- unit-runner:
22
- description: Runner used by unit tests.
23
- required: false
24
- type: string
25
- default: ubuntu-slim
26
-
27
- permissions:
28
- contents: read
29
-
30
- env:
31
- TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
32
- TURBO_TEAM: ${{ vars.TURBO_TEAM }}
33
- REPO_FOUNDRY_PROFILE: ${{ vars.REPO_FOUNDRY_PROFILE }}
34
- REPO_FOUNDRY_LANGUAGES: ${{ vars.REPO_FOUNDRY_LANGUAGES }}
35
- REPO_FOUNDRY_FEATURES: ${{ vars.REPO_FOUNDRY_FEATURES }}
36
- REPO_FOUNDRY_PACKAGE_MANAGER: ${{ vars.REPO_FOUNDRY_PACKAGE_MANAGER }}
37
- REPO_FOUNDRY_RUNNER: ${{ vars.REPO_FOUNDRY_RUNNER }}
38
- REPO_FOUNDRY_CACHE_PACKAGES: ${{ vars.REPO_FOUNDRY_CACHE_PACKAGES || 'auto' }}
39
- REPO_FOUNDRY_CACHE_BUILD: ${{ vars.REPO_FOUNDRY_CACHE_BUILD || 'auto' }}
40
- REPO_FOUNDRY_BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before || '' }}
41
-
42
- concurrency:
43
- group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
44
- cancel-in-progress: true
45
-
46
- jobs:
47
- unit:
48
- name: Unit
49
- runs-on: ${{ inputs.unit-runner }}
50
- timeout-minutes: 30
51
- steps:
52
- - name: Checkout
53
- uses: actions/checkout@v7
54
- with:
55
- fetch-depth: 2
56
- - name: Runtime
57
- uses: actions/checkout@v7
58
- with:
59
- repository: ${{ inputs.runtime-repository }}
60
- ref: ${{ inputs.runtime-ref }}
61
- path: .code-foundry
62
- sparse-checkout: |
63
- .github/actions
64
- .github/scripts
65
- - name: Install runtime
66
- run: |
67
- mkdir -p .github/actions .github/scripts
68
- cp -R .code-foundry/.github/actions/. .github/actions/
69
- cp -R .code-foundry/.github/scripts/. .github/scripts/
70
- - name: Detect
71
- id: applicability
72
- run: bash .github/scripts/ci.sh task_profile unit >> "$GITHUB_OUTPUT"
73
- - name: Setup
74
- if: steps.applicability.outputs.applicable == 'true'
75
- uses: ./.github/actions/setup
76
- with:
77
- install: true
78
- install-javascript: ${{ steps.applicability.outputs.javascript == 'true' }}
79
- install-python: ${{ steps.applicability.outputs.python == 'true' }}
80
- install-rust: ${{ steps.applicability.outputs.rust == 'true' }}
81
- cache-build: false
82
- cache-environment: false
83
- cache-packages: ${{ vars.REPO_FOUNDRY_CACHE_PACKAGES || 'auto' }}
84
- task: unit
85
- task-javascript: ${{ steps.applicability.outputs.javascript }}
86
- task-python: ${{ steps.applicability.outputs.python }}
87
- task-rust: ${{ steps.applicability.outputs.rust }}
88
- - name: Unit
89
- if: steps.applicability.outputs.applicable == 'true'
90
- run: bash .github/scripts/ci.sh unit
91
- - name: Upload coverage
92
- if: >-
93
- always() &&
94
- steps.applicability.outputs.applicable == 'true' &&
95
- hashFiles('coverage/**', 'htmlcov/**', '.coverage*', 'target/llvm-cov/**') != ''
96
- uses: actions/upload-artifact@v7
97
- with:
98
- name: coverage-unit-${{ github.run_id }}
99
- path: |
100
- coverage/**
101
- htmlcov/**
102
- .coverage*
103
- target/llvm-cov/**
104
- compression-level: 1
105
- if-no-files-found: ignore
106
- retention-days: 14
107
-
108
- integration:
109
- name: Integration
110
- runs-on: ${{ inputs.runner }}
111
- timeout-minutes: 30
112
- steps:
113
- - name: Checkout
114
- uses: actions/checkout@v7
115
- with:
116
- fetch-depth: 2
117
- - name: Runtime
118
- uses: actions/checkout@v7
119
- with:
120
- repository: ${{ inputs.runtime-repository }}
121
- ref: ${{ inputs.runtime-ref }}
122
- path: .code-foundry
123
- sparse-checkout: |
124
- .github/actions
125
- .github/scripts
126
- - name: Install runtime
127
- run: |
128
- mkdir -p .github/actions .github/scripts
129
- cp -R .code-foundry/.github/actions/. .github/actions/
130
- cp -R .code-foundry/.github/scripts/. .github/scripts/
131
- - name: Detect
132
- id: applicability
133
- run: bash .github/scripts/ci.sh task_profile integration >> "$GITHUB_OUTPUT"
134
- - name: Setup
135
- if: steps.applicability.outputs.applicable == 'true'
136
- uses: ./.github/actions/setup
137
- with:
138
- install: true
139
- install-javascript: ${{ steps.applicability.outputs.javascript == 'true' }}
140
- install-python: ${{ steps.applicability.outputs.python == 'true' }}
141
- install-rust: ${{ steps.applicability.outputs.rust == 'true' }}
142
- cache-build: ${{ steps.applicability.outputs.rust == 'true' }}
143
- cache-environment: false
144
- cache-save: ${{ github.event_name == 'push' }}
145
- task: integration
146
- task-javascript: ${{ steps.applicability.outputs.javascript }}
147
- task-python: ${{ steps.applicability.outputs.python }}
148
- task-rust: ${{ steps.applicability.outputs.rust }}
149
- - name: Integration
150
- if: steps.applicability.outputs.applicable == 'true'
151
- run: bash .github/scripts/ci.sh integration
152
-
153
- e2e:
154
- name: E2E
155
- runs-on: ${{ inputs.runner }}
156
- timeout-minutes: 45
157
- steps:
158
- - name: Checkout
159
- uses: actions/checkout@v7
160
- with:
161
- fetch-depth: 2
162
- - name: Runtime
163
- uses: actions/checkout@v7
164
- with:
165
- repository: ${{ inputs.runtime-repository }}
166
- ref: ${{ inputs.runtime-ref }}
167
- path: .code-foundry
168
- sparse-checkout: |
169
- .github/actions
170
- .github/scripts
171
- - name: Install runtime
172
- run: |
173
- mkdir -p .github/actions .github/scripts
174
- cp -R .code-foundry/.github/actions/. .github/actions/
175
- cp -R .code-foundry/.github/scripts/. .github/scripts/
176
- - name: Detect
177
- id: applicability
178
- run: bash .github/scripts/ci.sh task_profile e2e >> "$GITHUB_OUTPUT"
179
- - name: Cache browser binaries
180
- if: steps.applicability.outputs.applicable == 'true' && steps.applicability.outputs.browser == 'true'
181
- uses: ./.github/actions/cache
182
- with:
183
- save: ${{ github.event_name == 'push' }}
184
- path: |
185
- ~/.cache/ms-playwright
186
- ~/.cache/Cypress
187
- ~/.cache/puppeteer
188
- key: ${{ runner.os }}-e2e-browsers-${{ hashFiles('**/package.json', '**/bun.lock', '**/bun.lockb', '**/pnpm-lock.yaml', '**/yarn.lock', '**/package-lock.json', '**/playwright.config.*', '**/cypress.config.*') }}
189
- restore-keys: |
190
- ${{ runner.os }}-e2e-browsers-
191
- - name: Setup
192
- if: steps.applicability.outputs.applicable == 'true'
193
- uses: ./.github/actions/setup
194
- with:
195
- install: true
196
- install-javascript: ${{ steps.applicability.outputs.javascript == 'true' }}
197
- install-python: ${{ steps.applicability.outputs.python == 'true' }}
198
- install-rust: ${{ steps.applicability.outputs.rust == 'true' }}
199
- cache-build: false
200
- cache-environment: false
201
- cache-save: ${{ github.event_name == 'push' }}
202
- task: e2e
203
- task-javascript: ${{ steps.applicability.outputs.javascript }}
204
- task-python: ${{ steps.applicability.outputs.python }}
205
- task-rust: ${{ steps.applicability.outputs.rust }}
206
- - name: E2E
207
- if: steps.applicability.outputs.applicable == 'true'
208
- run: bash .github/scripts/ci.sh e2e
209
-
210
- smoke:
211
- name: Smoke
212
- runs-on: ${{ inputs.runner }}
213
- timeout-minutes: 15
214
- steps:
215
- - name: Checkout
216
- uses: actions/checkout@v7
217
- with:
218
- fetch-depth: 2
219
- - name: Runtime
220
- uses: actions/checkout@v7
221
- with:
222
- repository: ${{ inputs.runtime-repository }}
223
- ref: ${{ inputs.runtime-ref }}
224
- path: .code-foundry
225
- sparse-checkout: |
226
- .github/actions
227
- .github/scripts
228
- - name: Install runtime
229
- run: |
230
- mkdir -p .github/actions .github/scripts
231
- cp -R .code-foundry/.github/actions/. .github/actions/
232
- cp -R .code-foundry/.github/scripts/. .github/scripts/
233
- - name: Detect
234
- id: applicability
235
- run: bash .github/scripts/ci.sh task_profile smoke >> "$GITHUB_OUTPUT"
236
- - name: Setup
237
- if: steps.applicability.outputs.applicable == 'true'
238
- uses: ./.github/actions/setup
239
- with:
240
- install: true
241
- install-javascript: ${{ steps.applicability.outputs.javascript == 'true' }}
242
- install-python: ${{ steps.applicability.outputs.python == 'true' }}
243
- install-rust: ${{ steps.applicability.outputs.rust == 'true' }}
244
- cache-build: false
245
- cache-environment: false
246
- cache-save: ${{ github.event_name == 'push' }}
247
- task: smoke
248
- task-javascript: ${{ steps.applicability.outputs.javascript }}
249
- task-python: ${{ steps.applicability.outputs.python }}
250
- task-rust: ${{ steps.applicability.outputs.rust }}
251
- - name: Smoke
252
- if: steps.applicability.outputs.applicable == 'true'
253
- run: bash .github/scripts/ci.sh smoke