code-foundry 0.6.0 → 0.8.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.
@@ -10,164 +10,8 @@ on:
10
10
  permissions:
11
11
  contents: read
12
12
 
13
- env:
14
- TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
15
- TURBO_TEAM: ${{ vars.TURBO_TEAM }}
16
- REPO_FOUNDRY_PROFILE: ${{ vars.REPO_FOUNDRY_PROFILE }}
17
- REPO_FOUNDRY_LANGUAGES: ${{ vars.REPO_FOUNDRY_LANGUAGES }}
18
- REPO_FOUNDRY_FEATURES: ${{ vars.REPO_FOUNDRY_FEATURES }}
19
- REPO_FOUNDRY_PACKAGE_MANAGER: ${{ vars.REPO_FOUNDRY_PACKAGE_MANAGER }}
20
- REPO_FOUNDRY_RUNNER: ${{ vars.REPO_FOUNDRY_RUNNER }}
21
- REPO_FOUNDRY_CACHE_PACKAGES: ${{ vars.REPO_FOUNDRY_CACHE_PACKAGES || 'auto' }}
22
- REPO_FOUNDRY_CACHE_BUILD: ${{ vars.REPO_FOUNDRY_CACHE_BUILD || 'auto' }}
23
- REPO_FOUNDRY_BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before || '' }}
24
-
25
- concurrency:
26
- group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
27
- cancel-in-progress: true
28
-
29
13
  jobs:
30
- format:
31
- name: Format
32
- runs-on: ${{ vars.REPO_FOUNDRY_RUNNER || vars.REPO_FOUNDRY_FAST_RUNNER || 'ubuntu-latest' }}
33
- timeout-minutes: 15
34
- steps:
35
- - name: Checkout
36
- uses: actions/checkout@v7
37
- with:
38
- fetch-depth: 2
39
- - name: Detect
40
- id: applicability
41
- run: bash .github/scripts/ci.sh should_run format >> "$GITHUB_OUTPUT"
42
- - name: Format Probe
43
- id: format-probe
44
- if: steps.applicability.outputs.applicable == 'true'
45
- run: bash .github/scripts/format-fast-path.sh
46
- - name: Setup
47
- if: steps.applicability.outputs.applicable == 'true'
48
- uses: ./.github/actions/setup
49
- with:
50
- install: ${{ steps.format-probe.outputs.hit != 'true' }}
51
- install-python: false
52
- install-rust: false
53
- cache-build: false
54
- # Warm the format cache on branch pushes without adding archive
55
- # time to pull-request checks.
56
- cache-save: ${{ github.event_name == 'push' }}
57
- cache-format: true
58
- task: format
59
- - name: Format
60
- if: steps.applicability.outputs.applicable == 'true'
61
- id: format-fast
62
- continue-on-error: ${{ steps.format-probe.outputs.hit == 'true' }}
63
- run: bash .github/scripts/ci.sh format
64
- - name: Setup Fallback
65
- if: >-
66
- steps.applicability.outputs.applicable == 'true' &&
67
- steps.format-probe.outputs.hit == 'true' &&
68
- steps.format-fast.outcome == 'failure'
69
- uses: ./.github/actions/setup
70
- with:
71
- install: true
72
- install-python: false
73
- install-rust: false
74
- cache-build: false
75
- cache-save: false
76
- cache-format: true
77
- task: format
78
- - name: Format Fallback
79
- if: >-
80
- steps.applicability.outputs.applicable == 'true' &&
81
- steps.format-probe.outputs.hit == 'true' &&
82
- steps.format-fast.outcome == 'failure'
83
- run: bash .github/scripts/ci.sh format
84
-
85
- lint:
86
- name: Lint
87
- runs-on: ${{ vars.REPO_FOUNDRY_RUNNER || vars.REPO_FOUNDRY_FAST_RUNNER || 'ubuntu-latest' }}
88
- timeout-minutes: 20
89
- steps:
90
- - name: Checkout
91
- uses: actions/checkout@v7
92
- with:
93
- fetch-depth: 2
94
- - name: Detect
95
- id: applicability
96
- run: bash .github/scripts/ci.sh should_run lint >> "$GITHUB_OUTPUT"
97
- - name: Turbo Probe
98
- id: turbo
99
- if: steps.applicability.outputs.applicable == 'true'
100
- run: bash .github/scripts/turbo-cache-probe.sh lint
101
- - name: Setup
102
- if: steps.applicability.outputs.applicable == 'true'
103
- uses: ./.github/actions/setup
104
- with:
105
- install: ${{ steps.turbo.outputs.hit != 'true' }}
106
- install-python: false
107
- cache-build: false
108
- # Warm the lint cache on branch pushes without adding archive time
109
- # to pull-request checks.
110
- cache-save: ${{ github.event_name == 'push' }}
111
- cache-lint: true
112
- task: lint
113
- - name: Lint
114
- if: steps.applicability.outputs.applicable == 'true'
115
- run: bash .github/scripts/ci.sh lint
116
-
117
- type-check:
118
- name: Type-Check
119
- runs-on: ubuntu-latest
120
- timeout-minutes: 20
121
- steps:
122
- - name: Checkout
123
- uses: actions/checkout@v7
124
- with:
125
- fetch-depth: 2
126
- - name: Detect
127
- id: applicability
128
- run: bash .github/scripts/ci.sh should_run type_check >> "$GITHUB_OUTPUT"
129
- - name: Turbo Probe
130
- id: turbo
131
- if: steps.applicability.outputs.applicable == 'true'
132
- run: bash .github/scripts/turbo-cache-probe.sh type-check
133
- - name: Setup
134
- if: steps.applicability.outputs.applicable == 'true'
135
- uses: ./.github/actions/setup
136
- with:
137
- install: ${{ steps.turbo.outputs.hit != 'true' }}
138
- install-python: false
139
- cache-build: ${{ steps.applicability.outputs.rust == 'true' || vars.REPO_FOUNDRY_CACHE_BUILD == 'true' }}
140
- cache-save: ${{ github.event_name == 'push' }}
141
- task: type_check
142
- - name: Type-Check
143
- if: steps.applicability.outputs.applicable == 'true'
144
- run: bash .github/scripts/ci.sh type_check
145
-
146
- build:
147
- name: Build
148
- runs-on: ubuntu-latest
149
- timeout-minutes: 30
150
- steps:
151
- - name: Checkout
152
- uses: actions/checkout@v7
153
- with:
154
- fetch-depth: 2
155
- - name: Detect
156
- id: applicability
157
- run: bash .github/scripts/ci.sh should_run build >> "$GITHUB_OUTPUT"
158
- - name: Turbo Probe
159
- id: turbo
160
- if: steps.applicability.outputs.applicable == 'true'
161
- run: bash .github/scripts/turbo-cache-probe.sh build
162
- - name: Setup
163
- if: steps.applicability.outputs.applicable == 'true'
164
- uses: ./.github/actions/setup
165
- with:
166
- install: ${{ steps.turbo.outputs.hit != 'true' }}
167
- install-python: false
168
- cache-build: ${{ steps.applicability.outputs.rust == 'true' || vars.REPO_FOUNDRY_CACHE_BUILD == 'true' }}
169
- cache-save: ${{ github.event_name == 'push' }}
170
- task: build
171
- - name: Build
172
- if: steps.applicability.outputs.applicable == 'true'
173
- run: bash .github/scripts/ci.sh build
14
+ ci:
15
+ name: CI
16
+ uses: 0xPlayerOne/code-foundry/.github/workflows/reusable-ci.yml@v0.7.0
17
+ secrets: inherit
@@ -12,7 +12,7 @@ on:
12
12
  description: Code Foundry runtime tag or ref.
13
13
  required: false
14
14
  type: string
15
- default: v0.5.0
15
+ default: v0.7.0
16
16
 
17
17
  permissions:
18
18
  contents: read
@@ -0,0 +1,243 @@
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.7.0
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ env:
21
+ TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
22
+ TURBO_TEAM: ${{ vars.TURBO_TEAM }}
23
+ REPO_FOUNDRY_PROFILE: ${{ vars.REPO_FOUNDRY_PROFILE }}
24
+ REPO_FOUNDRY_LANGUAGES: ${{ vars.REPO_FOUNDRY_LANGUAGES }}
25
+ REPO_FOUNDRY_FEATURES: ${{ vars.REPO_FOUNDRY_FEATURES }}
26
+ REPO_FOUNDRY_PACKAGE_MANAGER: ${{ vars.REPO_FOUNDRY_PACKAGE_MANAGER }}
27
+ REPO_FOUNDRY_RUNNER: ${{ vars.REPO_FOUNDRY_RUNNER }}
28
+ REPO_FOUNDRY_CACHE_PACKAGES: ${{ vars.REPO_FOUNDRY_CACHE_PACKAGES || 'auto' }}
29
+ REPO_FOUNDRY_CACHE_BUILD: ${{ vars.REPO_FOUNDRY_CACHE_BUILD || 'auto' }}
30
+ REPO_FOUNDRY_BASE_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before || '' }}
31
+
32
+ concurrency:
33
+ group: ${{ github.workflow }}-${{ github.event.pull_request.head.repo.full_name || github.repository }}-${{ github.event.pull_request.head.ref || github.ref_name }}
34
+ cancel-in-progress: true
35
+
36
+ jobs:
37
+ unit:
38
+ name: Unit
39
+ runs-on: ${{ vars.REPO_FOUNDRY_UNIT_RUNNER || 'ubuntu-slim' }}
40
+ timeout-minutes: 30
41
+ steps:
42
+ - name: Checkout
43
+ uses: actions/checkout@v7
44
+ with:
45
+ fetch-depth: 2
46
+ - name: Runtime
47
+ uses: actions/checkout@v7
48
+ with:
49
+ repository: ${{ inputs.runtime-repository }}
50
+ ref: ${{ inputs.runtime-ref }}
51
+ path: .code-foundry
52
+ sparse-checkout: |
53
+ .github/actions
54
+ .github/scripts
55
+ - name: Install runtime
56
+ run: |
57
+ mkdir -p .github/actions .github/scripts
58
+ cp -R .code-foundry/.github/actions/. .github/actions/
59
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
60
+ - name: Detect
61
+ id: applicability
62
+ run: bash .github/scripts/ci.sh task_profile unit >> "$GITHUB_OUTPUT"
63
+ - name: Setup
64
+ if: steps.applicability.outputs.applicable == 'true'
65
+ uses: ./.github/actions/setup
66
+ with:
67
+ install: true
68
+ install-javascript: ${{ steps.applicability.outputs.javascript == 'true' }}
69
+ install-python: ${{ steps.applicability.outputs.python == 'true' }}
70
+ install-rust: ${{ steps.applicability.outputs.rust == 'true' }}
71
+ cache-build: false
72
+ cache-environment: false
73
+ cache-packages: ${{ vars.REPO_FOUNDRY_CACHE_PACKAGES || 'auto' }}
74
+ task: unit
75
+ task-javascript: ${{ steps.applicability.outputs.javascript }}
76
+ task-python: ${{ steps.applicability.outputs.python }}
77
+ task-rust: ${{ steps.applicability.outputs.rust }}
78
+ - name: Unit
79
+ if: steps.applicability.outputs.applicable == 'true'
80
+ run: bash .github/scripts/ci.sh unit
81
+ - name: Upload coverage
82
+ if: >-
83
+ always() &&
84
+ steps.applicability.outputs.applicable == 'true' &&
85
+ hashFiles('coverage/**', 'htmlcov/**', '.coverage*', 'target/llvm-cov/**') != ''
86
+ uses: actions/upload-artifact@v7
87
+ with:
88
+ name: coverage-unit-${{ github.run_id }}
89
+ path: |
90
+ coverage/**
91
+ htmlcov/**
92
+ .coverage*
93
+ target/llvm-cov/**
94
+ compression-level: 1
95
+ if-no-files-found: ignore
96
+ retention-days: 14
97
+
98
+ integration:
99
+ name: Integration
100
+ runs-on: ubuntu-latest
101
+ timeout-minutes: 30
102
+ steps:
103
+ - name: Checkout
104
+ uses: actions/checkout@v7
105
+ with:
106
+ fetch-depth: 2
107
+ - name: Runtime
108
+ uses: actions/checkout@v7
109
+ with:
110
+ repository: ${{ inputs.runtime-repository }}
111
+ ref: ${{ inputs.runtime-ref }}
112
+ path: .code-foundry
113
+ sparse-checkout: |
114
+ .github/actions
115
+ .github/scripts
116
+ - name: Install runtime
117
+ run: |
118
+ mkdir -p .github/actions .github/scripts
119
+ cp -R .code-foundry/.github/actions/. .github/actions/
120
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
121
+ - name: Detect
122
+ id: applicability
123
+ run: bash .github/scripts/ci.sh task_profile integration >> "$GITHUB_OUTPUT"
124
+ - name: Setup
125
+ if: steps.applicability.outputs.applicable == 'true'
126
+ uses: ./.github/actions/setup
127
+ with:
128
+ install: true
129
+ install-javascript: ${{ steps.applicability.outputs.javascript == 'true' }}
130
+ install-python: ${{ steps.applicability.outputs.python == 'true' }}
131
+ install-rust: ${{ steps.applicability.outputs.rust == 'true' }}
132
+ cache-build: ${{ steps.applicability.outputs.rust == 'true' }}
133
+ cache-environment: false
134
+ cache-save: ${{ github.event_name == 'push' }}
135
+ task: integration
136
+ task-javascript: ${{ steps.applicability.outputs.javascript }}
137
+ task-python: ${{ steps.applicability.outputs.python }}
138
+ task-rust: ${{ steps.applicability.outputs.rust }}
139
+ - name: Integration
140
+ if: steps.applicability.outputs.applicable == 'true'
141
+ run: bash .github/scripts/ci.sh integration
142
+
143
+ e2e:
144
+ name: E2E
145
+ runs-on: ubuntu-latest
146
+ timeout-minutes: 45
147
+ steps:
148
+ - name: Checkout
149
+ uses: actions/checkout@v7
150
+ with:
151
+ fetch-depth: 2
152
+ - name: Runtime
153
+ uses: actions/checkout@v7
154
+ with:
155
+ repository: ${{ inputs.runtime-repository }}
156
+ ref: ${{ inputs.runtime-ref }}
157
+ path: .code-foundry
158
+ sparse-checkout: |
159
+ .github/actions
160
+ .github/scripts
161
+ - name: Install runtime
162
+ run: |
163
+ mkdir -p .github/actions .github/scripts
164
+ cp -R .code-foundry/.github/actions/. .github/actions/
165
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
166
+ - name: Detect
167
+ id: applicability
168
+ run: bash .github/scripts/ci.sh task_profile e2e >> "$GITHUB_OUTPUT"
169
+ - name: Cache browser binaries
170
+ if: steps.applicability.outputs.applicable == 'true' && steps.applicability.outputs.browser == 'true'
171
+ uses: ./.github/actions/cache
172
+ with:
173
+ save: ${{ github.event_name == 'push' }}
174
+ path: |
175
+ ~/.cache/ms-playwright
176
+ ~/.cache/Cypress
177
+ ~/.cache/puppeteer
178
+ key: ${{ runner.os }}-e2e-browsers-${{ hashFiles('**/package.json', '**/bun.lock', '**/bun.lockb', '**/pnpm-lock.yaml', '**/yarn.lock', '**/package-lock.json', '**/playwright.config.*', '**/cypress.config.*') }}
179
+ restore-keys: |
180
+ ${{ runner.os }}-e2e-browsers-
181
+ - name: Setup
182
+ if: steps.applicability.outputs.applicable == 'true'
183
+ uses: ./.github/actions/setup
184
+ with:
185
+ install: true
186
+ install-javascript: ${{ steps.applicability.outputs.javascript == 'true' }}
187
+ install-python: ${{ steps.applicability.outputs.python == 'true' }}
188
+ install-rust: ${{ steps.applicability.outputs.rust == 'true' }}
189
+ cache-build: false
190
+ cache-environment: false
191
+ cache-save: ${{ github.event_name == 'push' }}
192
+ task: e2e
193
+ task-javascript: ${{ steps.applicability.outputs.javascript }}
194
+ task-python: ${{ steps.applicability.outputs.python }}
195
+ task-rust: ${{ steps.applicability.outputs.rust }}
196
+ - name: E2E
197
+ if: steps.applicability.outputs.applicable == 'true'
198
+ run: bash .github/scripts/ci.sh e2e
199
+
200
+ smoke:
201
+ name: Smoke
202
+ runs-on: ubuntu-latest
203
+ timeout-minutes: 15
204
+ steps:
205
+ - name: Checkout
206
+ uses: actions/checkout@v7
207
+ with:
208
+ fetch-depth: 2
209
+ - name: Runtime
210
+ uses: actions/checkout@v7
211
+ with:
212
+ repository: ${{ inputs.runtime-repository }}
213
+ ref: ${{ inputs.runtime-ref }}
214
+ path: .code-foundry
215
+ sparse-checkout: |
216
+ .github/actions
217
+ .github/scripts
218
+ - name: Install runtime
219
+ run: |
220
+ mkdir -p .github/actions .github/scripts
221
+ cp -R .code-foundry/.github/actions/. .github/actions/
222
+ cp -R .code-foundry/.github/scripts/. .github/scripts/
223
+ - name: Detect
224
+ id: applicability
225
+ run: bash .github/scripts/ci.sh task_profile smoke >> "$GITHUB_OUTPUT"
226
+ - name: Setup
227
+ if: steps.applicability.outputs.applicable == 'true'
228
+ uses: ./.github/actions/setup
229
+ with:
230
+ install: true
231
+ install-javascript: ${{ steps.applicability.outputs.javascript == 'true' }}
232
+ install-python: ${{ steps.applicability.outputs.python == 'true' }}
233
+ install-rust: ${{ steps.applicability.outputs.rust == 'true' }}
234
+ cache-build: false
235
+ cache-environment: false
236
+ cache-save: ${{ github.event_name == 'push' }}
237
+ task: smoke
238
+ task-javascript: ${{ steps.applicability.outputs.javascript }}
239
+ task-python: ${{ steps.applicability.outputs.python }}
240
+ task-rust: ${{ steps.applicability.outputs.rust }}
241
+ - name: Smoke
242
+ if: steps.applicability.outputs.applicable == 'true'
243
+ run: bash .github/scripts/ci.sh smoke
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.7.0...v0.8.0) (2026-07-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * **test:** add reusable test workflow runtime ([5a1f4cf](https://github.com/0xPlayerOne/code-foundry/commit/5a1f4cfadb6b11f27b001ba8f6424b11de32fd64))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **test:** keep local workflow during runtime release ([8827659](https://github.com/0xPlayerOne/code-foundry/commit/88276590451ee6b3230ad3b1349ccd4785a686bf))
14
+
15
+ ## [0.7.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.6.0...v0.7.0) (2026-07-28)
16
+
17
+
18
+ ### Features
19
+
20
+ * **ci:** use reusable workflow wrapper ([77c7075](https://github.com/0xPlayerOne/code-foundry/commit/77c7075d23f48b44da276406c0000fe23c7f1dcf))
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * **ci:** declare read-only workflow permissions ([e7b7397](https://github.com/0xPlayerOne/code-foundry/commit/e7b739739979b1572760c1f81d9c7229d156c7e3))
26
+ * **ci:** name reusable checks consistently ([4a194f4](https://github.com/0xPlayerOne/code-foundry/commit/4a194f40b4f2a2660526eefac0e366402de0782d))
27
+
3
28
  ## [0.6.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.5.0...v0.6.0) (2026-07-28)
4
29
 
5
30
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "0.6.0",
3
+ "version": "0.8.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",