|
62 | 62 | needs: build |
63 | 63 | runs-on: ubuntu-latest |
64 | 64 | timeout-minutes: 15 |
| 65 | + # secrets 不可用于 if 条件(同 release.yml),先注入 job 级 env 再在 step 用 env.* 引用 |
| 66 | + env: |
| 67 | + DOWNLOAD_BASE_URL: ${{ secrets.DOWNLOAD_BASE_URL }} |
| 68 | + HAS_ALIYUN_AK: ${{ secrets.ALIYUN_ACCESS_KEY_ID != '' }} |
65 | 69 | steps: |
66 | 70 | - uses: actions/download-artifact@v4 |
67 | 71 | with: |
@@ -107,6 +111,36 @@ jobs: |
107 | 111 | curl -sf https://entropydecrease.com/pwa/ | grep -q "熵减" || exit 1 |
108 | 112 | echo "PWA deployed: ${{ github.ref_name }}" |
109 | 113 |
|
| 114 | + # --------------------------------------------------------------- |
| 115 | + # CDN 预热:PWA 入口与元数据(manifest/sw.js)预热,移动端首开 |
| 116 | + # 免回源等待(入口文件虽小,CDN 冷缓存回源仍受源站出网带宽限制)。 |
| 117 | + # 与 release.yml 安装包预热共用同一套阿里云凭证;未配置时跳过。 |
| 118 | + # --------------------------------------------------------------- |
| 119 | + - name: Prefetch CDN cache (PWA) |
| 120 | + if: env.DOWNLOAD_BASE_URL != '' && env.HAS_ALIYUN_AK == 'true' |
| 121 | + continue-on-error: true |
| 122 | + env: |
| 123 | + AK_ID: ${{ secrets.ALIYUN_ACCESS_KEY_ID }} |
| 124 | + AK_SECRET: ${{ secrets.ALIYUN_ACCESS_KEY_SECRET }} |
| 125 | + run: | |
| 126 | + set -eo pipefail |
| 127 | + if [ ! -x /tmp/aliyun ]; then |
| 128 | + curl -sL https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz -o /tmp/aliyun.tgz |
| 129 | + tar -xzf /tmp/aliyun.tgz -C /tmp |
| 130 | + fi |
| 131 | + /tmp/aliyun configure set --profile cdnci --mode AK --region cn-hangzhou \ |
| 132 | + --access-key-id "$AK_ID" --access-key-secret "$AK_SECRET" |
| 133 | +
|
| 134 | + OBJECTS="https://entropydecrease.com/pwa/"$'\n'"https://entropydecrease.com/pwa/manifest.webmanifest"$'\n'"https://entropydecrease.com/pwa/sw.js" |
| 135 | + echo "Prefetching:" |
| 136 | + echo "$OBJECTS" |
| 137 | +
|
| 138 | + /tmp/aliyun cdn PushObjectCache \ |
| 139 | + --profile cdnci \ |
| 140 | + --ObjectPath "$OBJECTS" \ |
| 141 | + --Area domestic |
| 142 | + echo "PWA CDN prefetch done" |
| 143 | +
|
110 | 144 | # --------------------------------------------------------------------------- |
111 | 145 | # Android APK(B 方案:TWA 打包):bubblewrap 基于已部署的 PWA manifest |
112 | 146 | # 生成 TWA 工程并构建签名 APK,上传 GitHub Release + 服务器下载目录 |
|
0 commit comments