Skip to content

Commit f9a2aae

Browse files
authored
release: v0.3.2 (dev -> main) (#37)
* New branch (#33) * chore: add pending project files * refactor(ingest): centralize ingestion via parser/resolver/store layers * docs: document layered ingest architecture * test(perf): add qmd benchmark harness and non-blocking CI regression check * perf(bench): add ingest hotpath benchmark and record qmd optimization * perf(ingest): batch session writes and add stable benchmark tooling * Add benchmark scorecard to CI summary and sticky PR comment * Fix bench import path and temporarily disable design-contract workflow * CI: checkout qmd submodule in perf bench workflow * Fix Windows path handling in ingest session discovery * Feature/bench scorecard ci windows fixes (#34) * chore: add pending project files * refactor(ingest): centralize ingestion via parser/resolver/store layers * docs: document layered ingest architecture * test(perf): add qmd benchmark harness and non-blocking CI regression check * perf(bench): add ingest hotpath benchmark and record qmd optimization * perf(ingest): batch session writes and add stable benchmark tooling * Add benchmark scorecard to CI summary and sticky PR comment * Fix bench import path and temporarily disable design-contract workflow * CI: checkout qmd submodule in perf bench workflow * Fix Windows path handling in ingest session discovery * CI: run full test matrix only on merge branches * CI: auto-create draft prerelease on successful dev CI * CI: auto-template and title for dev to main PRs * CI: create dev draft release after successful dev test matrix * chore: add e2e dev release flow test marker (#36)
1 parent 06fb3a1 commit f9a2aae

2 files changed

Lines changed: 75 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,75 @@ jobs:
5656
- name: Run tests
5757
# Full cross-platform test matrix for merge branches.
5858
run: bun test test/
59+
60+
dev-draft-release:
61+
name: Dev Draft Release
62+
if: github.event_name == 'push' && github.ref == 'refs/heads/dev'
63+
needs: test-merge
64+
runs-on: ubuntu-latest
65+
permissions:
66+
contents: write
67+
68+
steps:
69+
- name: Checkout
70+
uses: actions/checkout@v4
71+
with:
72+
fetch-depth: 0
73+
submodules: recursive
74+
75+
- name: Compute dev tag
76+
id: tag
77+
run: |
78+
BASE_VERSION=$(node -p "require('./package.json').version")
79+
DEV_TAG="v${BASE_VERSION}-dev.${{ github.run_number }}"
80+
echo "dev_tag=${DEV_TAG}" >> "$GITHUB_OUTPUT"
81+
82+
- name: Remove previous dev draft releases and tags
83+
uses: actions/github-script@v7
84+
with:
85+
script: |
86+
const { owner, repo } = context.repo;
87+
88+
const releases = await github.paginate(github.rest.repos.listReleases, {
89+
owner,
90+
repo,
91+
per_page: 100,
92+
});
93+
94+
for (const release of releases) {
95+
const isDevTag = /-dev\.\d+$/.test(release.tag_name || "");
96+
if (isDevTag && release.draft) {
97+
await github.rest.repos.deleteRelease({
98+
owner,
99+
repo,
100+
release_id: release.id,
101+
});
102+
}
103+
}
104+
105+
const refs = await github.paginate(github.rest.git.listMatchingRefs, {
106+
owner,
107+
repo,
108+
ref: "tags/v",
109+
per_page: 100,
110+
});
111+
for (const ref of refs) {
112+
const tagName = ref.ref.replace("refs/tags/", "");
113+
if (/-dev\.\d+$/.test(tagName)) {
114+
await github.rest.git.deleteRef({
115+
owner,
116+
repo,
117+
ref: `tags/${tagName}`,
118+
}).catch(() => {});
119+
}
120+
}
121+
122+
- name: Create draft prerelease
123+
uses: softprops/action-gh-release@v2
124+
with:
125+
tag_name: ${{ steps.tag.outputs.dev_tag }}
126+
target_commitish: ${{ github.sha }}
127+
name: Dev Draft ${{ steps.tag.outputs.dev_tag }}
128+
generate_release_notes: true
129+
draft: true
130+
prerelease: true

docs/e2e-dev-release-flow-test.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# E2E Dev Release Flow Test
2+
3+
This file exists only to verify the automated `dev` CI to draft-release flow end to end.

0 commit comments

Comments
 (0)