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 *