Conversation
Adds a workflow_dispatch workflow to create releases from the Actions tab. Enter a version (e.g. v0.3.1) and it validates the format, runs tests, builds the frontend + arm64 binary, creates the git tag, and publishes a GitHub Release with auto-generated release notes.
Greptile SummaryRefactors release process from automatic (tag-triggered) to manual (workflow_dispatch). This change resolves the duplicate build issue where both Key Changes:
The workflow structure follows GitHub Actions best practices with appropriate job dependencies, minimal permissions, and proper artifact passing. All issues from previous review threads have been addressed. Confidence Score: 5/5
Important Files Changed
Last reviewed commit: c546979 |
| git tag ${{ inputs.version }} | ||
| git push origin ${{ inputs.version }} |
There was a problem hiding this comment.
pushing this tag triggers ci.yml (which has on: push: tags: ["v*"]), causing both workflows to build and create releases simultaneously - if intentional as a safety net, this is fine but resource-intensive
|
|
||
| - name: Create tag | ||
| run: | | ||
| git tag ${{ inputs.version }} |
There was a problem hiding this comment.
check if tag exists first for clearer error if re-running after partial failure
| git tag ${{ inputs.version }} | |
| if git rev-parse "${{ inputs.version }}" >/dev/null 2>&1; then | |
| echo "::error::Tag ${{ inputs.version }} already exists. Delete it first to recreate." | |
| exit 1 | |
| fi | |
| git tag ${{ inputs.version }} |
- Remove tag trigger and release job from ci.yml (release.yml handles it) - Add tag existence check before creating to give clear error on re-runs
| - uses: actions/checkout@v4 | ||
|
|
||
| - uses: actions/download-artifact@v4 | ||
| with: | ||
| name: teslausb-linux-arm64 | ||
|
|
||
| - name: Create tag | ||
| run: | | ||
| if git rev-parse "${{ inputs.version }}" >/dev/null 2>&1; then | ||
| echo "::error::Tag ${{ inputs.version }} already exists. Delete it first to recreate." | ||
| exit 1 | ||
| fi | ||
| git tag ${{ inputs.version }} | ||
| git push origin ${{ inputs.version }} |
There was a problem hiding this comment.
tag existence check won't work - actions/checkout@v4 doesn't fetch tags by default, so line 106 won't see remote tags and will incorrectly proceed even if tag exists remotely
| - uses: actions/checkout@v4 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: teslausb-linux-arm64 | |
| - name: Create tag | |
| run: | | |
| if git rev-parse "${{ inputs.version }}" >/dev/null 2>&1; then | |
| echo "::error::Tag ${{ inputs.version }} already exists. Delete it first to recreate." | |
| exit 1 | |
| fi | |
| git tag ${{ inputs.version }} | |
| git push origin ${{ inputs.version }} | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-tags: true | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: teslausb-linux-arm64 | |
| - name: Create tag | |
| run: | | |
| if git rev-parse "${{ inputs.version }}" >/dev/null 2>&1; then | |
| echo "::error::Tag ${{ inputs.version }} already exists. Delete it first to recreate." | |
| exit 1 | |
| fi | |
| git tag ${{ inputs.version }} | |
| git push origin ${{ inputs.version }} |
Additional Comments (1)
|
Summary
workflow_dispatchworkflow to create releases from the Actions tabv0.3.1), it validates format, runs tests, builds, tags, and publishesTest plan
v0.4.0