code-foundry 0.24.1 → 0.25.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,22 +1,253 @@
1
- name: Test
1
+ name: Code Foundry Test
2
2
 
3
3
  on:
4
- push:
5
- branches: [main, staging]
6
- pull_request:
7
- branches: [staging]
8
- workflow_dispatch:
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
9
26
 
10
27
  permissions:
11
28
  contents: read
12
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
+
13
46
  jobs:
14
- test:
15
- name: Test
16
- uses: 0xPlayerOne/code-foundry/.github/workflows/reusable-test.yml@v0.22.0
17
- with:
18
- runtime-repository: 0xPlayerOne/code-foundry
19
- runtime-ref: v0.22.0
20
- runner: ubuntu-latest
21
- unit-runner: ubuntu-slim
22
- secrets: inherit
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
@@ -0,0 +1,22 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [main, staging]
6
+ pull_request:
7
+ branches: [staging]
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ test:
15
+ name: Test
16
+ uses: ./.github/workflows/test.yml
17
+ with:
18
+ runtime-repository: 0xPlayerOne/code-foundry
19
+ runtime-ref: v0.22.0
20
+ runner: ubuntu-latest
21
+ unit-runner: ubuntu-slim
22
+ secrets: inherit
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.25.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.24.1...v0.25.0) (2026-07-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * simplify reusable workflow layout ([293b2a8](https://github.com/0xPlayerOne/code-foundry/commit/293b2a877500853778f311763cd4176e86f0b4f8))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * use local self workflow references ([31ea5a5](https://github.com/0xPlayerOne/code-foundry/commit/31ea5a5a621039afd8e19febe9d2a9f814c9d6fa))
14
+
3
15
  ## [0.24.1](https://github.com/0xPlayerOne/code-foundry/compare/v0.24.0...v0.24.1) (2026-07-28)
4
16
 
5
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "0.24.1",
3
+ "version": "0.25.0",
4
4
  "description": "A fast, language-aware repository factory for agent-ready workflows, testing, security, and release automation.",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0-or-later",
@@ -1,184 +0,0 @@
1
- name: Code Foundry CI
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 CI jobs.
18
- required: false
19
- type: string
20
- default: ubuntu-latest
21
-
22
- permissions:
23
- contents: read
24
-
25
- env:
26
- TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
27
- TURBO_TEAM: ${{ vars.TURBO_TEAM }}
28
- REPO_FOUNDRY_PROFILE: ${{ vars.REPO_FOUNDRY_PROFILE }}
29
- REPO_FOUNDRY_LANGUAGES: ${{ vars.REPO_FOUNDRY_LANGUAGES }}
30
- REPO_FOUNDRY_FEATURES: ${{ vars.REPO_FOUNDRY_FEATURES }}
31
- REPO_FOUNDRY_PACKAGE_MANAGER: ${{ vars.REPO_FOUNDRY_PACKAGE_MANAGER }}
32
- REPO_FOUNDRY_RUNNER: ${{ vars.REPO_FOUNDRY_RUNNER }}
33
- REPO_FOUNDRY_CACHE_PACKAGES: ${{ vars.REPO_FOUNDRY_CACHE_PACKAGES || 'auto' }}
34
- REPO_FOUNDRY_CACHE_BUILD: ${{ vars.REPO_FOUNDRY_CACHE_BUILD || 'auto' }}
35
- REPO_FOUNDRY_BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before || '' }}
36
-
37
- concurrency:
38
- group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
39
- cancel-in-progress: true
40
-
41
- jobs:
42
- format:
43
- name: Format
44
- runs-on: ${{ inputs.runner }}
45
- steps:
46
- - name: Checkout
47
- uses: actions/checkout@v7
48
- - name: Runtime
49
- uses: actions/checkout@v7
50
- with:
51
- repository: ${{ inputs.runtime-repository }}
52
- ref: ${{ inputs.runtime-ref }}
53
- path: .code-foundry
54
- sparse-checkout: |
55
- .github/actions
56
- .github/scripts
57
- - name: Install runtime
58
- run: |
59
- mkdir -p .github/actions .github/scripts
60
- cp -R .code-foundry/.github/actions/. .github/actions/
61
- cp -R .code-foundry/.github/scripts/. .github/scripts/
62
- - name: Detect
63
- id: applicability
64
- run: bash .github/scripts/ci.sh should_run format >> "$GITHUB_OUTPUT"
65
- - name: Fast path
66
- if: steps.applicability.outputs.applicable == 'true'
67
- run: bash .github/scripts/format-fast-path.sh
68
- - name: Setup
69
- if: steps.applicability.outputs.applicable == 'true'
70
- uses: ./.github/actions/setup
71
- with:
72
- install: 'false'
73
- cache-format: 'true'
74
- cache-lint: 'false'
75
- cache-build: 'false'
76
- task: format
77
- task-javascript: 'true'
78
- task-python: 'false'
79
- task-rust: 'false'
80
- - name: Format
81
- if: steps.applicability.outputs.applicable == 'true'
82
- run: bash .github/scripts/ci.sh format
83
-
84
- lint:
85
- name: Lint
86
- runs-on: ${{ inputs.runner }}
87
- steps:
88
- - name: Checkout
89
- uses: actions/checkout@v7
90
- - name: Runtime
91
- uses: actions/checkout@v7
92
- with:
93
- repository: ${{ inputs.runtime-repository }}
94
- ref: ${{ inputs.runtime-ref }}
95
- path: .code-foundry
96
- sparse-checkout: |
97
- .github/actions
98
- .github/scripts
99
- - name: Install runtime
100
- run: |
101
- mkdir -p .github/actions .github/scripts
102
- cp -R .code-foundry/.github/actions/. .github/actions/
103
- cp -R .code-foundry/.github/scripts/. .github/scripts/
104
- - name: Detect
105
- id: applicability
106
- run: bash .github/scripts/ci.sh should_run lint >> "$GITHUB_OUTPUT"
107
- - name: Setup
108
- if: steps.applicability.outputs.applicable == 'true'
109
- uses: ./.github/actions/setup
110
- with:
111
- install: 'true'
112
- cache-lint: 'true'
113
- task: lint
114
- - name: Lint
115
- if: steps.applicability.outputs.applicable == 'true'
116
- run: bash .github/scripts/ci.sh lint
117
-
118
- type-check:
119
- name: Type-Check
120
- runs-on: ${{ inputs.runner }}
121
- steps:
122
- - name: Checkout
123
- uses: actions/checkout@v7
124
- - name: Runtime
125
- uses: actions/checkout@v7
126
- with:
127
- repository: ${{ inputs.runtime-repository }}
128
- ref: ${{ inputs.runtime-ref }}
129
- path: .code-foundry
130
- sparse-checkout: |
131
- .github/actions
132
- .github/scripts
133
- - name: Install runtime
134
- run: |
135
- mkdir -p .github/actions .github/scripts
136
- cp -R .code-foundry/.github/actions/. .github/actions/
137
- cp -R .code-foundry/.github/scripts/. .github/scripts/
138
- - name: Detect
139
- id: applicability
140
- run: bash .github/scripts/ci.sh should_run type_check >> "$GITHUB_OUTPUT"
141
- - name: Setup
142
- if: steps.applicability.outputs.applicable == 'true'
143
- uses: ./.github/actions/setup
144
- with:
145
- install: 'true'
146
- cache-build: 'true'
147
- task: type_check
148
- - name: Type-Check
149
- if: steps.applicability.outputs.applicable == 'true'
150
- run: bash .github/scripts/ci.sh type_check
151
-
152
- build:
153
- name: Build
154
- runs-on: ${{ inputs.runner }}
155
- steps:
156
- - name: Checkout
157
- uses: actions/checkout@v7
158
- - name: Runtime
159
- uses: actions/checkout@v7
160
- with:
161
- repository: ${{ inputs.runtime-repository }}
162
- ref: ${{ inputs.runtime-ref }}
163
- path: .code-foundry
164
- sparse-checkout: |
165
- .github/actions
166
- .github/scripts
167
- - name: Install runtime
168
- run: |
169
- mkdir -p .github/actions .github/scripts
170
- cp -R .code-foundry/.github/actions/. .github/actions/
171
- cp -R .code-foundry/.github/scripts/. .github/scripts/
172
- - name: Detect
173
- id: applicability
174
- run: bash .github/scripts/ci.sh should_run build >> "$GITHUB_OUTPUT"
175
- - name: Setup
176
- if: steps.applicability.outputs.applicable == 'true'
177
- uses: ./.github/actions/setup
178
- with:
179
- install: 'true'
180
- cache-build: 'true'
181
- task: build
182
- - name: Build
183
- if: steps.applicability.outputs.applicable == 'true'
184
- run: bash .github/scripts/ci.sh build