Parcourir la source

ci: add retry logic to desktop build to handle intermittent failures

Dax Raad il y a 1 mois
Parent
commit
b1a613b3b9
1 fichiers modifiés avec 16 ajouts et 12 suppressions
  1. 16 12
      .github/workflows/publish.yml

+ 16 - 12
.github/workflows/publish.yml

@@ -177,8 +177,22 @@ jobs:
           cargo tauri --version
 
       - name: Build and upload artifacts
-        timeout-minutes: 20
-        uses: tauri-apps/tauri-action@390cbe447412ced1303d35abe75287949e43437a
+        uses: Wandalen/wretry.action@v3
+        timeout-minutes: 60
+        with:
+          attempt_limit: 3
+          attempt_delay: 10000
+          action: tauri-apps/tauri-action@390cbe447412ced1303d35abe75287949e43437a
+          with: |
+            projectPath: packages/desktop
+            uploadWorkflowArtifacts: true
+            tauriScript: ${{ (contains(matrix.settings.host, 'ubuntu') && 'cargo tauri') || '' }}
+            args: --target ${{ matrix.settings.target }} --config ./src-tauri/tauri.prod.conf.json --verbose
+            updaterJsonPreferNsis: true
+            releaseId: ${{ needs.publish.outputs.release }}
+            tagName: ${{ needs.publish.outputs.tag }}
+            releaseAssetNamePattern: opencode-desktop-[platform]-[arch][ext]
+            releaseDraft: true
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           TAURI_BUNDLER_NEW_APPIMAGE_FORMAT: true
@@ -190,16 +204,6 @@ jobs:
           APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
           APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
           APPLE_API_KEY_PATH: ${{ runner.temp }}/apple-api-key.p8
-        with:
-          projectPath: packages/desktop
-          uploadWorkflowArtifacts: true
-          tauriScript: ${{ (contains(matrix.settings.host, 'ubuntu') && 'cargo tauri') || '' }}
-          args: --target ${{ matrix.settings.target }} --config ./src-tauri/tauri.prod.conf.json --verbose
-          updaterJsonPreferNsis: true
-          releaseId: ${{ needs.publish.outputs.release }}
-          tagName: ${{ needs.publish.outputs.tag }}
-          releaseAssetNamePattern: opencode-desktop-[platform]-[arch][ext]
-          releaseDraft: true
 
   publish-release:
     needs: