|
28 | 28 | if [[ $GITHUB_REF == refs/tags/* ]]; then |
29 | 29 | VERSION=${GITHUB_REF#refs/tags/} |
30 | 30 | else |
31 | | - VERSION=$(grep '^version' Cargo.toml | cut -d '"' -f 2) |
| 31 | + VERSION="tip" |
32 | 32 | fi |
33 | 33 | echo "version=$VERSION" >> $GITHUB_OUTPUT |
34 | 34 | echo "Version: $VERSION" |
|
40 | 40 | script: | |
41 | 41 | const version = '${{ steps.get_version.outputs.version }}'; |
42 | 42 | const isTag = context.ref.startsWith('refs/tags/'); |
43 | | - const tagName = isTag ? version : `v${version}`; |
44 | | - const releaseName = isTag ? `Release ${version}` : `Development Release ${version}`; |
| 43 | + const tagName = isTag ? version : 'termcopy-tip'; |
| 44 | + const releaseName = isTag ? `Release ${version}` : 'termcopy tip'; |
| 45 | +
|
| 46 | + if (!isTag) { |
| 47 | + // For CI releases, delete existing 'termcopy tip' release if it exists |
| 48 | + try { |
| 49 | + const releases = await github.rest.repos.listReleases({ |
| 50 | + owner: context.repo.owner, |
| 51 | + repo: context.repo.repo |
| 52 | + }); |
| 53 | + const existingRelease = releases.data.find(r => r.name === 'termcopy tip'); |
| 54 | + if (existingRelease) { |
| 55 | + await github.rest.repos.deleteRelease({ |
| 56 | + owner: context.repo.owner, |
| 57 | + repo: context.repo.repo, |
| 58 | + release_id: existingRelease.id |
| 59 | + }); |
| 60 | + // Also delete the tag if it exists |
| 61 | + try { |
| 62 | + await github.rest.git.deleteRef({ |
| 63 | + owner: context.repo.owner, |
| 64 | + repo: context.repo.repo, |
| 65 | + ref: 'tags/termcopy-tip' |
| 66 | + }); |
| 67 | + } catch (tagError) { |
| 68 | + // Tag might not exist, ignore error |
| 69 | + } |
| 70 | + } |
| 71 | + } catch (error) { |
| 72 | + // Release might not exist, continue |
| 73 | + } |
| 74 | + } |
45 | 75 |
|
46 | 76 | try { |
47 | 77 | const release = await github.rest.repos.createRelease({ |
|
57 | 87 | core.setOutput('upload_url', release.data.upload_url); |
58 | 88 | return release.data.id; |
59 | 89 | } catch (error) { |
60 | | - if (error.status === 422) { |
61 | | - // Release already exists, get it |
| 90 | + if (error.status === 422 && isTag) { |
| 91 | + // Release already exists for tag, get it |
62 | 92 | const releases = await github.rest.repos.listReleases({ |
63 | 93 | owner: context.repo.owner, |
64 | 94 | repo: context.repo.repo |
|
0 commit comments