@@ -2,6 +2,12 @@ name: Deploy Playground to CDN
22
33on :
44 workflow_dispatch :
5+ inputs :
6+ is_latest_release :
7+ description : ' 当前分支是否是最新release版本'
8+ required : true
9+ default : true
10+ type : boolean
511
612env :
713 HUAWEI_CLOUD_AK : ${{ secrets.HUAWEI_CLOUD_AK }}
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
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
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