Skip to content

Commit 26ba5ce

Browse files
committed
ci: fix release publishing without checkout
1 parent 1309b06 commit 26ba5ce

3 files changed

Lines changed: 75 additions & 8 deletions

File tree

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Publish Existing Release Assets
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
tag_name:
7+
description: "Release tag to publish"
8+
required: true
9+
default: "v0.3.0"
10+
source_run_id:
11+
description: "Workflow run id containing beellama-release-assets"
12+
required: true
13+
default: "26878136155"
14+
artifact_name:
15+
description: "Release asset bundle artifact name"
16+
required: true
17+
default: "beellama-release-assets"
18+
19+
permissions:
20+
actions: read
21+
contents: write
22+
23+
concurrency:
24+
group: publish-existing-release-${{ inputs.tag_name }}
25+
cancel-in-progress: false
26+
27+
jobs:
28+
publish:
29+
name: Publish existing release assets
30+
runs-on: ubuntu-24.04
31+
env:
32+
GH_TOKEN: ${{ github.token }}
33+
TAG_NAME: ${{ inputs.tag_name }}
34+
steps:
35+
- name: Download release assets
36+
uses: actions/download-artifact@v7
37+
with:
38+
name: ${{ inputs.artifact_name }}
39+
path: ./release-bundle
40+
run-id: ${{ inputs.source_run_id }}
41+
repository: ${{ github.repository }}
42+
github-token: ${{ github.token }}
43+
44+
- name: Create or update release
45+
shell: bash
46+
run: |
47+
set -euo pipefail
48+
notes_file="$(find release-bundle -type f -name release-notes.md | head -n 1)"
49+
if [[ -z "${notes_file}" ]]; then
50+
echo "release-notes.md not found in release asset bundle" >&2
51+
exit 1
52+
fi
53+
54+
mapfile -t release_files < <(find release-bundle -type f ! -name release-notes.md | sort)
55+
if [[ "${#release_files[@]}" -eq 0 ]]; then
56+
echo "No release files found in release asset bundle" >&2
57+
exit 1
58+
fi
59+
60+
if gh release view "${TAG_NAME}" --repo "${GITHUB_REPOSITORY}" >/dev/null 2>&1; then
61+
gh release upload "${TAG_NAME}" "${release_files[@]}" --clobber --repo "${GITHUB_REPOSITORY}"
62+
gh release edit "${TAG_NAME}" --repo "${GITHUB_REPOSITORY}" --title "${TAG_NAME}" --notes-file "${notes_file}"
63+
else
64+
gh release create "${TAG_NAME}" "${release_files[@]}" --repo "${GITHUB_REPOSITORY}" --title "${TAG_NAME}" --notes-file "${notes_file}" --verify-tag
65+
fi
66+
67+
gh release view "${TAG_NAME}" --repo "${GITHUB_REPOSITORY}"

.github/workflows/release-rescue.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,9 @@ jobs:
303303
exit 1
304304
fi
305305
306-
if gh release view "${TAG_NAME}" >/dev/null 2>&1; then
307-
gh release upload "${TAG_NAME}" "${release_files[@]}" --clobber
308-
gh release edit "${TAG_NAME}" --title "${TAG_NAME}" --notes-file release-notes.md
306+
if gh release view "${TAG_NAME}" --repo "${GITHUB_REPOSITORY}" >/dev/null 2>&1; then
307+
gh release upload "${TAG_NAME}" "${release_files[@]}" --clobber --repo "${GITHUB_REPOSITORY}"
308+
gh release edit "${TAG_NAME}" --repo "${GITHUB_REPOSITORY}" --title "${TAG_NAME}" --notes-file release-notes.md
309309
else
310-
gh release create "${TAG_NAME}" "${release_files[@]}" --title "${TAG_NAME}" --notes-file release-notes.md --verify-tag
310+
gh release create "${TAG_NAME}" "${release_files[@]}" --repo "${GITHUB_REPOSITORY}" --title "${TAG_NAME}" --notes-file release-notes.md --verify-tag
311311
fi

.github/workflows/release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,9 +1053,9 @@ jobs:
10531053
exit 1
10541054
fi
10551055
1056-
if gh release view "${TAG_NAME}" >/dev/null 2>&1; then
1057-
gh release upload "${TAG_NAME}" "${release_files[@]}" --clobber
1058-
gh release edit "${TAG_NAME}" --title "${TAG_NAME}" --notes-file "${notes_file}"
1056+
if gh release view "${TAG_NAME}" --repo "${GITHUB_REPOSITORY}" >/dev/null 2>&1; then
1057+
gh release upload "${TAG_NAME}" "${release_files[@]}" --clobber --repo "${GITHUB_REPOSITORY}"
1058+
gh release edit "${TAG_NAME}" --repo "${GITHUB_REPOSITORY}" --title "${TAG_NAME}" --notes-file "${notes_file}"
10591059
else
1060-
gh release create "${TAG_NAME}" "${release_files[@]}" --title "${TAG_NAME}" --notes-file "${notes_file}" --verify-tag
1060+
gh release create "${TAG_NAME}" "${release_files[@]}" --repo "${GITHUB_REPOSITORY}" --title "${TAG_NAME}" --notes-file "${notes_file}" --verify-tag
10611061
fi

0 commit comments

Comments
 (0)