vault-link/taskfiles/release.yml

44 lines
1.4 KiB
YAML

version: "3"
tasks:
bump:
desc: Bump version (usage - task release:bump -- patch|minor|major)
dir: "{{.ROOT_DIR}}"
requires:
vars:
- name: CLI_ARGS
enum: [patch, minor, major]
preconditions:
- sh: test -z "$(git status --porcelain)"
msg: "Working directory not clean. Commit or stash changes first."
vars:
BUMP_TYPE: "{{.CLI_ARGS}}"
cmds:
- echo "Creating {{.BUMP_TYPE}} release..."
- cd sync-server && cargo set-version --bump {{.BUMP_TYPE}}
- cd frontend && npm version {{.BUMP_TYPE}} --workspaces
- cp frontend/obsidian-plugin/manifest.json manifest.json
- task: :format
- |
git add .
TAG=$(node -p "require('./frontend/obsidian-plugin/package.json').version")
git commit -m "Bump versions to $TAG"
git push
git tag -a $TAG -m "Release $TAG"
git push origin $TAG
echo "Released $TAG"
create-release:
desc: Create GitHub release with all artifacts
dir: "{{.ROOT_DIR}}"
cmds:
- task: :db:setup
- task: :frontend:build
- task: :rust:build-binaries
- |
tag="${GITHUB_REF#refs/tags/}"
mkdir -p release
cp frontend/obsidian-plugin/dist/* release/
cp sync-server/artifacts/sync-server-* release/
cd release
gh release create "$tag" --title="$tag" --draft *