diff --git a/.github/workflows/generator-android.yml b/.github/workflows/generator-android.yml index bf1d0af..c10fca9 100644 --- a/.github/workflows/generator-android.yml +++ b/.github/workflows/generator-android.yml @@ -585,15 +585,6 @@ jobs: run: | curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./signed-apk/${{ env.filename }}-${{ matrix.job.arch }}.apk" ${{ env.apiServer }}/api/save_custom_client - - name: Report Status - uses: fjogeleit/http-request-action@v1 - continue-on-error: true - with: - url: ${{ env.STATUS_URL }} - method: 'POST' - customHeaders: '{"Content-Type": "application/json"}' - data: '{"uuid": "${{ env.uuid }}", "status": "Success"}' - - name: failed if: failure() uses: fjogeleit/http-request-action@v1 @@ -611,3 +602,52 @@ jobs: method: 'POST' customHeaders: '{"Content-Type": "application/json"}' data: '{"uuid": "${{ env.uuid }}", "status": "Generation cancelled, try again"}' + + deploy: + needs: [build-rustdesk-android] + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - uses: actions/download-artifact@v4 + with: + name: encrypted-secrets-zip + + - name: Load Secrets + uses: ./.github/actions/decrypt-secrets + with: + zip_password: ${{ secrets.ZIP_PASSWORD }} + + - name: Finalize and Cleanup zip/json + if: always() # Run even if previous steps fail + continue-on-error: true + uses: fjogeleit/http-request-action@v1 + with: + url: "${{ secrets.GENURL }}/cleanzip" + method: 'POST' + customHeaders: '{"Content-Type": "application/json"}' + data: '{"uuid": "${{ env.uuid }}"}' + + - name: Set rdgen value + if: ${{ env.rdgen == 'true' }} + run: | + echo "STATUS_URL=${{ secrets.GENURL }}/updategh" >> $GITHUB_ENV + + - name: Set rdgen value + if: ${{ env.rdgen == 'false' }} + run: | + echo "STATUS_URL=${{ env.apiServer }}/api/updategh" >> $GITHUB_ENV + + - name: Report Status + uses: fjogeleit/http-request-action@v1 + with: + url: ${{ env.STATUS_URL }} + method: 'POST' + customHeaders: '{"Content-Type": "application/json"}' + data: '{"uuid": "${{ env.uuid }}", "status": "Success"}' + + - uses: geekyeggo/delete-artifact@v5 + continue-on-error: true + with: + name: ${{ env.filename }}-*.deb \ No newline at end of file diff --git a/.github/workflows/generator-linux.yml b/.github/workflows/generator-linux.yml index a6872b5..4a2604d 100644 --- a/.github/workflows/generator-linux.yml +++ b/.github/workflows/generator-linux.yml @@ -579,21 +579,27 @@ jobs: - name: send file to rdgen server if: ${{ env.rdgen == 'true' }} - shell: bash - run: | - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.deb" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.rpm" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-suse-${{ matrix.job.arch }}.rpm" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.pkg.tar.zst" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client || true + uses: nick-fields/retry@v3 + with: + max_attempts: 3 + shell: bash + command: | + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.deb" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.rpm" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-suse-${{ matrix.job.arch }}.rpm" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.pkg.tar.zst" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client || true - name: send file to api server if: ${{ env.rdgen == 'false' }} - shell: bash - run: | - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.deb" ${{ env.apiServer }}/api/save_custom_client - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.rpm" ${{ env.apiServer }}/api/save_custom_client - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-suse-${{ matrix.job.arch }}.rpm" ${{ env.apiServer }}/api/save_custom_client - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.pkg.tar.zst" ${{ env.apiServer }}/api/save_custom_client || true + uses: nick-fields/retry@v3 + with: + max_attempts: 3 + shell: bash + command: | + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.deb" ${{ env.apiServer }}/api/save_custom_client + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.rpm" ${{ env.apiServer }}/api/save_custom_client + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-suse-${{ matrix.job.arch }}.rpm" ${{ env.apiServer }}/api/save_custom_client + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./output/${{ env.filename }}-${{ matrix.job.arch }}.pkg.tar.zst" ${{ env.apiServer }}/api/save_custom_client || true - name: Upload deb uses: actions/upload-artifact@master @@ -692,15 +698,39 @@ jobs: - name: send file to rdgen server if: ${{ env.rdgen == 'true' }} - shell: bash - run: | - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./appimage/${{ env.filename }}-${{ matrix.job.arch }}.AppImage" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client + uses: nick-fields/retry@v3 + with: + max_attempts: 3 + shell: bash + command: | + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./appimage/${{ env.filename }}-${{ matrix.job.arch }}.AppImage" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client - name: send file to api server if: ${{ env.rdgen == 'false' }} - shell: bash - run: | - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./appimage/${{ env.filename }}-${{ matrix.job.arch }}.AppImage" ${{ env.apiServer }}/api/save_custom_client + uses: nick-fields/retry@v3 + with: + max_attempts: 3 + shell: bash + command: | + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./appimage/${{ env.filename }}-${{ matrix.job.arch }}.AppImage" ${{ env.apiServer }}/api/save_custom_client + + - name: failed + if: failure() + uses: fjogeleit/http-request-action@v1 + with: + url: ${{ env.STATUS_URL }} + method: 'POST' + customHeaders: '{"Content-Type": "application/json"}' + data: '{"uuid": "${{ env.uuid }}", "status": "Generation failed, try again"}' + + - name: failed + if: cancelled() + uses: fjogeleit/http-request-action@v1 + with: + url: ${{ env.STATUS_URL }} + method: 'POST' + customHeaders: '{"Content-Type": "application/json"}' + data: '{"uuid": "${{ env.uuid }}", "status": "Generation cancelled, try again"}' build-flatpak: name: Build flatpak ${{ matrix.job.target }}${{ matrix.job.suffix }} @@ -795,22 +825,43 @@ jobs: - name: send file to rdgen server if: ${{ env.rdgen == 'true' }} - continue-on-error: true - shell: bash - run: | - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./flatpak/${{ env.filename }}-${{ matrix.job.arch }}.flatpak" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client + uses: nick-fields/retry@v3 + with: + max_attempts: 3 + shell: bash + command: | + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./flatpak/${{ env.filename }}-${{ matrix.job.arch }}.flatpak" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client - name: send file to api server if: ${{ env.rdgen == 'false' }} - continue-on-error: true - shell: bash - run: | - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./flatpak/${{ env.filename }}-${{ matrix.job.arch }}.flatpak" ${{ env.apiServer }}/api/save_custom_client + uses: nick-fields/retry@v3 + with: + max_attempts: 3 + shell: bash + command: | + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./flatpak/${{ env.filename }}-${{ matrix.job.arch }}.flatpak" ${{ env.apiServer }}/api/save_custom_client + - name: failed + if: failure() + uses: fjogeleit/http-request-action@v1 + with: + url: ${{ env.STATUS_URL }} + method: 'POST' + customHeaders: '{"Content-Type": "application/json"}' + data: '{"uuid": "${{ env.uuid }}", "status": "Generation failed, try again"}' + - name: failed + if: cancelled() + uses: fjogeleit/http-request-action@v1 + with: + url: ${{ env.STATUS_URL }} + method: 'POST' + customHeaders: '{"Content-Type": "application/json"}' + data: '{"uuid": "${{ env.uuid }}", "status": "Generation cancelled, try again"}' deploy: needs: [build-rustdesk-linux,build-flatpak,build-appimage] + if: always() runs-on: ubuntu-latest steps: - name: Checkout Repository