forked from Qortal/q-blog
66 lines
1.9 KiB
Markdown
66 lines
1.9 KiB
Markdown
# Release Flow (Gitea + local scripts)
|
|
|
|
This repo uses local scripts to cut releases and create uploads in Gitea. CI stays marketplace-free and works with your self-hosted runner.
|
|
|
|
## One-time
|
|
|
|
- Ensure env vars are exported in your shell (or place them in `.gitea.env` and `source` it):
|
|
```bash
|
|
export GITEA_BASE_URL=https://gitea.qortal.link
|
|
export GITEA_TOKEN=... # personal access token with repo scope
|
|
export OWNER=greenflame089
|
|
export REPO=q-blog
|
|
```
|
|
|
|
## Phase wrap example (Phase 0 → v0.0.1)
|
|
|
|
1. Bump & tag:
|
|
|
|
```bash
|
|
bash scripts/release/bump-and-tag.sh 0.0.1 "Phase 0 — Orientation & Quality Bar"
|
|
```
|
|
|
|
2. Create archives (source only by default; pass `--with-build` later in Phase 1+):
|
|
|
|
```bash
|
|
bash scripts/release/build-archive.sh
|
|
# or with a production build attempt:
|
|
# bash scripts/release/build-archive.sh --with-build
|
|
```
|
|
|
|
3. Before pushing: format and checks
|
|
|
|
```bash
|
|
npm run format:fix
|
|
npm run typecheck
|
|
npm run lint:full
|
|
npm run test:run
|
|
```
|
|
|
|
4. Create/Update Gitea release and upload zips for the current version only:
|
|
|
|
```bash
|
|
bash scripts/release/create-gitea-release.sh 0.0.1 \
|
|
--title "Phase 0 — v0.0.1" \
|
|
--notes docs/RELEASE_NOTES_v0.0.1.md \
|
|
--branch update
|
|
```
|
|
|
|
The script will:
|
|
|
|
- create the release if missing (or patch it if it exists),
|
|
- upload only `release/*-v0.0.1-*.zip` artifacts by default (current version),
|
|
- print the Release URL on success.
|
|
|
|
### Notes
|
|
|
|
- We intentionally **skip a TypeScript build by default** in Phase 0 to avoid coupling to app code. Use `--with-build` after the Phase 1 correctness sweeps.
|
|
- Artifacts are placed in `release/`:
|
|
- `*-src.zip` is always created.
|
|
- `*-dist.zip` is created if `dist/` exists (when `--with-build` is used).
|
|
|
|
### Tips
|
|
|
|
- To override which files are uploaded (e.g., re-upload a specific dist), pass `--assets 'release/*-v0.2.0-dist.zip'`.
|
|
- If you have older zips in `release/`, the default upload pattern avoids attaching them.
|