forked from Qortal/q-blog
1.9 KiB
1.9 KiB
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.envandsourceit):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)
- Bump & tag:
bash scripts/release/bump-and-tag.sh 0.0.1 "Phase 0 — Orientation & Quality Bar"
- Create archives (source only by default; pass
--with-buildlater in Phase 1+):
bash scripts/release/build-archive.sh
# or with a production build attempt:
# bash scripts/release/build-archive.sh --with-build
- Before pushing: format and checks
npm run format:fix
npm run typecheck
npm run lint:full
npm run test:run
- Create/Update Gitea release and upload zips for the current version only:
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-*.zipartifacts 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-buildafter the Phase 1 correctness sweeps. - Artifacts are placed in
release/:*-src.zipis always created.*-dist.zipis created ifdist/exists (when--with-buildis 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.