Browse Source

CI: deploy to Cloudflare Pages

SukkaW 1 year ago
parent
commit
ad22a0f225
2 changed files with 19 additions and 1 deletions
  1. 6 0
      .github/workflows/main.yml
  2. 13 1
      Build/download-previous-build.ts

+ 6 - 0
.github/workflows/main.yml

@@ -64,6 +64,12 @@ jobs:
             echo "public directory is empty"
             exit 1
           fi
+      - name: Deploy to Cloudflare Pages
+        uses: cloudflare/wrangler-action@v3
+        with:
+          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
+          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
+          command: pages deploy public --project-name=sukkaw-ruleset --commit-dirty=true --branch=main
       - name: Deploy
         uses: peaceiris/actions-gh-pages@v4
         with:

+ 13 - 1
Build/download-previous-build.ts

@@ -52,7 +52,19 @@ export const downloadPreviousBuild = task(require.main === module, __filename)(a
   return span
     .traceChild('download & extract previoud build')
     .traceAsyncFn(async () => {
-      const resp = await fetchWithRetry('https://codeload.github.com/sukkalab/ruleset.skk.moe/tar.gz/master', defaultRequestInit);
+      const resp = await fetchWithRetry('https://codeload.github.com/sukkalab/ruleset.skk.moe/tar.gz/master', {
+        ...defaultRequestInit,
+        retry: {
+          retryOnNon2xx: false
+        }
+      });
+
+      if (resp.status !== 200) {
+        console.warn('Download previous build failed! Status:', resp.status);
+        if (resp.status === 404) {
+          return;
+        }
+      }
 
       if (!resp.body) {
         throw new Error('Download previous build failed! No body found');