Skip to content

Commit 9bb172f

Browse files
committed
feat: add latest
1 parent 80e6c66 commit 9bb172f

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

.github/workflows/deploy-playground-to-cdn.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ name: Deploy Playground to CDN
22

33
on:
44
workflow_dispatch:
5+
inputs:
6+
is_latest_release:
7+
description: '当前分支是否是最新release版本'
8+
required: true
9+
default: true
10+
type: boolean
511

612
env:
713
HUAWEI_CLOUD_AK: ${{ secrets.HUAWEI_CLOUD_AK }}
@@ -36,7 +42,9 @@ jobs:
3642
outputs:
3743
version-timestamp: ${{ steps.prepare-version.outputs.version_timestamp }}
3844
cdn-base: ${{ steps.prepare-version.outputs.cdn_base }}
45+
cdn-base-latest: ${{ steps.prepare-version.outputs.cdn_base_latest }}
3946
obs-path: ${{ steps.prepare-version.outputs.obs_path }}
47+
obs-path-latest: ${{ steps.prepare-version.outputs.obs_path_latest }}
4048
steps:
4149
# 步骤1: 检出代码
4250
- name: CheckOut Code
@@ -89,7 +97,9 @@ jobs:
8997
9098
# Set CDN base path
9199
CDN_BASE="https://res-static.opentiny.design/tiny-robot-playground/${VERSION_TIMESTAMP}/"
100+
CDN_BASE_LATEST="https://res-static.opentiny.design/tiny-robot-playground/latest/"
92101
OBS_PATH="tiny-robot-playground/${VERSION_TIMESTAMP}"
102+
OBS_PATH_LATEST="tiny-robot-playground/latest"
93103
94104
# Export as environment variables for subsequent steps
95105
echo "VERSION_TIMESTAMP=$VERSION_TIMESTAMP" >> $GITHUB_ENV
@@ -99,7 +109,9 @@ jobs:
99109
# Set outputs for job-level export
100110
echo "version_timestamp=$VERSION_TIMESTAMP" >> $GITHUB_OUTPUT
101111
echo "cdn_base=$CDN_BASE" >> $GITHUB_OUTPUT
112+
echo "cdn_base_latest=$CDN_BASE_LATEST" >> $GITHUB_OUTPUT
102113
echo "obs_path=$OBS_PATH" >> $GITHUB_OUTPUT
114+
echo "obs_path_latest=$OBS_PATH_LATEST" >> $GITHUB_OUTPUT
103115
104116
echo "Version-Timestamp: $VERSION_TIMESTAMP"
105117
echo "CDN Base: $CDN_BASE"
@@ -151,5 +163,15 @@ jobs:
151163
obs://${{ env.HUAWEI_CLOUD_BUCKET }}/${{ needs.build.outputs.obs-path }} \
152164
-r -f -flat
153165
166+
# If is_latest_release is true, also upload to latest path
167+
if [ "${{ github.event.inputs.is_latest_release }}" = "true" ]; then
168+
# use cdn-base-latest replace cdn-base in all ./packages/playground/dist files
169+
find ./packages/playground/dist -type f \( -name "*.html" -o -name "*.js" -o -name "*.mjs" -o -name "*.css" \) \
170+
-exec sed -i "s|${{ needs.build.outputs.cdn-base }}|${{ needs.build.outputs.cdn-base-latest }}|g" {} +
171+
obsutil cp ./packages/playground/dist \
172+
obs://${{ env.HUAWEI_CLOUD_BUCKET }}/${{ needs.build.outputs.obs-path-latest }} \
173+
-r -f -flat
174+
fi
175+
154176
echo "Uploaded to: obs://${{ env.HUAWEI_CLOUD_BUCKET }}/${{ needs.build.outputs.obs-path }}"
155177
echo "CDN URL: https://res-static.opentiny.design/${{ needs.build.outputs.obs-path }}"

0 commit comments

Comments
 (0)