Skip to content

Commit fb7473e

Browse files
author
joo
committed
fix: publish desktop latest after artifacts
1 parent e166b45 commit fb7473e

2 files changed

Lines changed: 50 additions & 2 deletions

File tree

.github/workflows/release-desktop.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,36 @@ jobs:
190190
--tag "${{ needs.prepare.outputs.tag }}" \
191191
--file electron/dist/clovapi-desktop-windows-x64.exe \
192192
--name clovapi-desktop-windows-x64.exe
193+
194+
desktop-latest:
195+
runs-on: ubuntu-latest
196+
needs:
197+
- prepare
198+
- desktop-mac
199+
- desktop-win
200+
if: needs.prepare.outputs.publish == 'true'
201+
steps:
202+
- name: Checkout
203+
uses: actions/checkout@v5
204+
205+
- name: Setup Python
206+
uses: actions/setup-python@v5
207+
with:
208+
python-version: "3.x"
209+
210+
- name: Install awscli
211+
run: pip install --upgrade awscli
212+
213+
- name: Publish desktop latest marker
214+
env:
215+
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
216+
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
217+
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
218+
R2_SESSION_TOKEN: ${{ secrets.R2_SESSION_TOKEN }}
219+
R2_BUCKET: ${{ secrets.R2_BUCKET }}
220+
R2_ARTIFACT_PREFIX: ${{ secrets.R2_ARTIFACT_PREFIX }}
221+
run: |
222+
set -euo pipefail
223+
chmod +x scripts/r2-publish.sh
224+
./scripts/r2-publish.sh desktop-latest \
225+
--tag "${{ needs.prepare.outputs.tag }}"

scripts/r2-publish.sh

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# ./scripts/r2-publish.sh cli --tag v0.1.12 --dist core/dist
1313
# ./scripts/r2-publish.sh install-sh --file landing/public/install.sh
1414
# ./scripts/r2-publish.sh desktop --tag v0.1.12 --file electron/dist/foo.dmg --name clovapi-desktop-darwin-universal.dmg
15+
# ./scripts/r2-publish.sh desktop-latest --tag v0.1.12
1516

1617
set -euo pipefail
1718

@@ -108,9 +109,22 @@ publish_desktop() {
108109
log "upload desktop ${name} -> ${versioned}"
109110
aws_r2 cp "$file" "$versioned" --cache-control "public, max-age=31536000, immutable"
110111
aws_r2 cp "$file" "$latest" --cache-control "no-cache, must-revalidate"
112+
log "desktop artifact -> ${PUBLIC_BASE}/desktop/${tag}/${name}"
113+
}
114+
115+
publish_desktop_latest() {
116+
local tag=""
117+
while [[ $# -gt 0 ]]; do
118+
case "$1" in
119+
--tag) tag="$2"; shift 2 ;;
120+
*) fail "unknown arg: $1" ;;
121+
esac
122+
done
123+
tag="$(normalize_tag "$tag")"
124+
111125
printf '%s' "$tag" > /tmp/desktop-latest.txt
112126
aws_r2 cp /tmp/desktop-latest.txt "s3://${R2_BUCKET}/desktop/latest.txt" --cache-control "no-cache, must-revalidate"
113-
log "desktop latest -> ${PUBLIC_BASE}/desktop/latest/${name} (${tag})"
127+
log "desktop latest.txt -> ${PUBLIC_BASE}/desktop/latest.txt (${tag})"
114128
}
115129

116130
main() {
@@ -121,8 +135,9 @@ main() {
121135
cli) publish_cli "$@" ;;
122136
install-sh) publish_install_sh "$@" ;;
123137
desktop) publish_desktop "$@" ;;
138+
desktop-latest) publish_desktop_latest "$@" ;;
124139
*)
125-
fail "usage: $0 cli|install-sh|desktop ..."
140+
fail "usage: $0 cli|install-sh|desktop|desktop-latest ..."
126141
;;
127142
esac
128143
}

0 commit comments

Comments
 (0)