code-foundry 0.16.0 → 0.17.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.
- package/.github/workflows/release.yml +4 -101
- package/CHANGELOG.md +12 -0
- package/README.md +5 -0
- package/package.json +1 -1
|
@@ -9,107 +9,10 @@ permissions:
|
|
|
9
9
|
contents: write
|
|
10
10
|
issues: write
|
|
11
11
|
pull-requests: write
|
|
12
|
-
|
|
13
|
-
env:
|
|
14
|
-
REPO_FOUNDRY_PROFILE: ${{ vars.REPO_FOUNDRY_PROFILE }}
|
|
15
|
-
REPO_FOUNDRY_LANGUAGES: ${{ vars.REPO_FOUNDRY_LANGUAGES }}
|
|
16
|
-
REPO_FOUNDRY_FEATURES: ${{ vars.REPO_FOUNDRY_FEATURES }}
|
|
17
|
-
REPO_FOUNDRY_PACKAGE_MANAGER: ${{ vars.REPO_FOUNDRY_PACKAGE_MANAGER }}
|
|
18
|
-
REPO_FOUNDRY_RELEASE_TYPE: ${{ vars.REPO_FOUNDRY_RELEASE_TYPE }}
|
|
19
|
-
REPO_FOUNDRY_NPM_PUBLISH: ${{ vars.REPO_FOUNDRY_NPM_PUBLISH }}
|
|
12
|
+
id-token: write
|
|
20
13
|
|
|
21
14
|
jobs:
|
|
22
15
|
release:
|
|
23
|
-
name: Release
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
concurrency:
|
|
27
|
-
group: ${{ github.workflow }}-${{ github.ref }}
|
|
28
|
-
cancel-in-progress: false
|
|
29
|
-
outputs:
|
|
30
|
-
release_created: ${{ steps.release.outputs.release_created || 'false' }}
|
|
31
|
-
tag_name: ${{ steps.release.outputs.tag_name }}
|
|
32
|
-
npm_publish: ${{ steps.profile.outputs.npm_publish }}
|
|
33
|
-
steps:
|
|
34
|
-
- name: Checkout
|
|
35
|
-
uses: actions/checkout@v7
|
|
36
|
-
with:
|
|
37
|
-
# Release Please reads release metadata and manifests; defer source
|
|
38
|
-
# blob transfer until a package file is actually needed.
|
|
39
|
-
filter: blob:none
|
|
40
|
-
- name: Detect release profile
|
|
41
|
-
id: profile
|
|
42
|
-
shell: bash
|
|
43
|
-
run: |
|
|
44
|
-
if [ -x .github/scripts/profile.sh ]; then
|
|
45
|
-
release_type="$(bash .github/scripts/profile.sh get release_type)"
|
|
46
|
-
npm_publish="$(bash .github/scripts/profile.sh get npm_publish)"
|
|
47
|
-
else
|
|
48
|
-
release_type="$(awk -F': ' '/^release_type:/ {print $2; exit}' .github/template.yml 2>/dev/null || true)"
|
|
49
|
-
npm_publish="$(awk -F': ' '/^npm_publish:/ {print $2; exit}' .github/template.yml 2>/dev/null || true)"
|
|
50
|
-
fi
|
|
51
|
-
[ -n "$release_type" ] || release_type=auto
|
|
52
|
-
[ -n "$npm_publish" ] || npm_publish=false
|
|
53
|
-
|
|
54
|
-
if [ "$release_type" = auto ]; then
|
|
55
|
-
if [ -f package.json ]; then release_type=node
|
|
56
|
-
elif [ -f pyproject.toml ]; then release_type=python
|
|
57
|
-
elif [ -f Cargo.toml ]; then release_type=rust
|
|
58
|
-
elif [ -f version.txt ]; then release_type=simple
|
|
59
|
-
else release_type=none
|
|
60
|
-
fi
|
|
61
|
-
fi
|
|
62
|
-
|
|
63
|
-
case "$release_type" in
|
|
64
|
-
node|python|rust|simple) ;;
|
|
65
|
-
none) npm_publish=false ;;
|
|
66
|
-
*) echo "Unsupported release_type: $release_type" >&2; exit 2 ;;
|
|
67
|
-
esac
|
|
68
|
-
if [ ! -f package.json ]; then npm_publish=false; fi
|
|
69
|
-
printf 'release_type=%s\n' "$release_type" >> "$GITHUB_OUTPUT"
|
|
70
|
-
printf 'npm_publish=%s\n' "$npm_publish" >> "$GITHUB_OUTPUT"
|
|
71
|
-
- name: Release Please
|
|
72
|
-
id: release
|
|
73
|
-
if: steps.profile.outputs.release_type != 'none'
|
|
74
|
-
uses: googleapis/release-please-action@v5
|
|
75
|
-
with:
|
|
76
|
-
# Use a PAT or GitHub App token when GITHUB_TOKEN cannot create PRs.
|
|
77
|
-
token: ${{ secrets.RELEASE_PLEASE_TOKEN || github.token }}
|
|
78
|
-
config-file: release-please-config.json
|
|
79
|
-
release-type: ${{ steps.profile.outputs.release_type }}
|
|
80
|
-
|
|
81
|
-
npm:
|
|
82
|
-
name: Release / Publish npm
|
|
83
|
-
needs: release
|
|
84
|
-
if: needs.release.outputs.release_created == 'true' && needs.release.outputs.npm_publish == 'true'
|
|
85
|
-
runs-on: ubuntu-slim
|
|
86
|
-
timeout-minutes: 15
|
|
87
|
-
permissions:
|
|
88
|
-
contents: read
|
|
89
|
-
id-token: write
|
|
90
|
-
env:
|
|
91
|
-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
92
|
-
steps:
|
|
93
|
-
- name: Checkout release
|
|
94
|
-
uses: actions/checkout@v7
|
|
95
|
-
with:
|
|
96
|
-
ref: ${{ needs.release.outputs.tag_name }}
|
|
97
|
-
- name: Setup Node (trusted)
|
|
98
|
-
if: env.NPM_TOKEN == ''
|
|
99
|
-
uses: actions/setup-node@v5
|
|
100
|
-
with:
|
|
101
|
-
node-version: 24
|
|
102
|
-
- name: Setup Node (token)
|
|
103
|
-
if: env.NPM_TOKEN != ''
|
|
104
|
-
uses: actions/setup-node@v5
|
|
105
|
-
with:
|
|
106
|
-
node-version: 24
|
|
107
|
-
registry-url: https://registry.npmjs.org
|
|
108
|
-
- name: Publish npm with token
|
|
109
|
-
if: env.NPM_TOKEN != ''
|
|
110
|
-
env:
|
|
111
|
-
NODE_AUTH_TOKEN: ${{ env.NPM_TOKEN }}
|
|
112
|
-
run: npm publish --provenance --access public
|
|
113
|
-
- name: Publish npm with trusted publishing
|
|
114
|
-
if: env.NPM_TOKEN == ''
|
|
115
|
-
run: npm publish --provenance --access public
|
|
16
|
+
name: Release
|
|
17
|
+
uses: 0xPlayerOne/code-foundry/.github/workflows/reusable-release.yml@v0.16.0
|
|
18
|
+
secrets: inherit
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.17.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.16.0...v0.17.0) (2026-07-28)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **release:** document centralized release runtime ([3e2a3f9](https://github.com/0xPlayerOne/code-foundry/commit/3e2a3f9b5e71bf5003819aa177afd265d989bb34))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **release:** grant trusted publishing permission ([025f78e](https://github.com/0xPlayerOne/code-foundry/commit/025f78e851d44a60e2e4e17d3718b0b2fbe147ae))
|
|
14
|
+
|
|
3
15
|
## [0.16.0](https://github.com/0xPlayerOne/code-foundry/compare/v0.15.0...v0.16.0) (2026-07-28)
|
|
4
16
|
|
|
5
17
|
|
package/README.md
CHANGED
|
@@ -55,6 +55,11 @@ CodeQL is also independently reusable through the same contract. It retains
|
|
|
55
55
|
GitHub's native security-event permissions and language-specific analysis while
|
|
56
56
|
keeping CodeQL separate from CI and dependency security checks.
|
|
57
57
|
|
|
58
|
+
Release automation follows the same model: the consumer keeps a short
|
|
59
|
+
main-branch wrapper while the shared runtime handles Release Please, GitHub
|
|
60
|
+
release metadata, optional npm publication, provenance, and token/trusted
|
|
61
|
+
publishing fallback.
|
|
62
|
+
|
|
58
63
|
Initialization defaults to AGPL for new repositories. Synchronization defaults
|
|
59
64
|
to `--license preserve`, so an existing repository's license is never replaced
|
|
60
65
|
unless you explicitly select a license or provide `--license-file`.
|
package/package.json
CHANGED