From 7ca5a67d6c57503aaa46e06c347f753e6e398259 Mon Sep 17 00:00:00 2001 From: Bryan Gerlach Date: Wed, 11 Feb 2026 22:57:32 -0600 Subject: [PATCH] delete secrets artifact, update readme --- .github/workflows/generator-android.yml | 33 ++++++++++++++++----- .github/workflows/generator-linux.yml | 11 +++++++ .github/workflows/generator-macos.yml | 11 +++++++ .github/workflows/generator-windows-x86.yml | 11 +++++++ .github/workflows/generator-windows.yml | 26 ++++++++++------ README.md | 4 +++ 6 files changed, 80 insertions(+), 16 deletions(-) diff --git a/.github/workflows/generator-android.yml b/.github/workflows/generator-android.yml index 6a85f63..cbd5431 100644 --- a/.github/workflows/generator-android.yml +++ b/.github/workflows/generator-android.yml @@ -578,15 +578,23 @@ 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=@./signed-apk/${{ env.filename }}-${{ matrix.job.arch }}.apk" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client + uses: nick-fields/retry@v3 + with: + timeout_minutes: 1 + max_attempts: 3 + shell: bash + command: | + 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" -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=@./signed-apk/${{ env.filename }}-${{ matrix.job.arch }}.apk" ${{ env.apiServer }}/api/save_custom_client + uses: nick-fields/retry@v3 + with: + timeout_minutes: 1 + max_attempts: 3 + shell: bash + command: | + 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: failed if: failure() @@ -653,4 +661,15 @@ jobs: - uses: geekyeggo/delete-artifact@v5 continue-on-error: true with: - name: ${{ env.filename }}-*.deb \ No newline at end of file + name: ${{ env.filename }}-*.deb + + cleanup: + needs: [build-rustdesk-android, deploy] + runs-on: ubuntu-latest + continue-on-error: true + if: always() + steps: + - name: Delete secrets artifact + uses: geekyeggo/delete-artifact@v5 + with: + name: encrypted-secrets-zip \ No newline at end of file diff --git a/.github/workflows/generator-linux.yml b/.github/workflows/generator-linux.yml index 6e4c158..6df8f0d 100644 --- a/.github/workflows/generator-linux.yml +++ b/.github/workflows/generator-linux.yml @@ -914,3 +914,14 @@ jobs: continue-on-error: true with: name: ${{ env.filename }}-*.deb + + cleanup: + needs: [build-rustdesk-linux,build-flatpak,build-appimage,deploy] + runs-on: ubuntu-latest + continue-on-error: true + if: always() + steps: + - name: Delete secrets artifact + uses: geekyeggo/delete-artifact@v5 + with: + name: encrypted-secrets-zip diff --git a/.github/workflows/generator-macos.yml b/.github/workflows/generator-macos.yml index 970f82c..4847c24 100644 --- a/.github/workflows/generator-macos.yml +++ b/.github/workflows/generator-macos.yml @@ -767,3 +767,14 @@ jobs: method: 'POST' customHeaders: '{"Content-Type": "application/json"}' data: '{"uuid": "${{ env.uuid }}", "status": "Generation cancelled, try again"}' + + cleanup: + needs: [build-for-macos] + runs-on: ubuntu-latest + continue-on-error: true + if: always() + steps: + - name: Delete secrets artifact + uses: geekyeggo/delete-artifact@v5 + with: + name: encrypted-secrets-zip diff --git a/.github/workflows/generator-windows-x86.yml b/.github/workflows/generator-windows-x86.yml index abd8d00..d1990f5 100644 --- a/.github/workflows/generator-windows-x86.yml +++ b/.github/workflows/generator-windows-x86.yml @@ -506,3 +506,14 @@ jobs: method: 'POST' customHeaders: '{"Content-Type": "application/json"}' data: '{"uuid": "${{ env.uuid }}", "status": "Generation cancelled, try again"}' + + cleanup: + needs: [build-for-windows-sciter] + runs-on: ubuntu-latest + continue-on-error: true + if: always() + steps: + - name: Delete secrets artifact + uses: geekyeggo/delete-artifact@v5 + with: + name: encrypted-secrets-zip diff --git a/.github/workflows/generator-windows.yml b/.github/workflows/generator-windows.yml index b90f516..5399966 100644 --- a/.github/workflows/generator-windows.yml +++ b/.github/workflows/generator-windows.yml @@ -655,17 +655,25 @@ 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=@./SignOutput/${{ env.filename }}.exe" -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=@./SignOutput/${{ env.filename }}.msi" -F "uuid=${{ env.uuid }}" ${{ secrets.GENURL }}/save_custom_client || true + uses: nick-fields/retry@v3 + with: + timeout_minutes: 1 + max_attempts: 3 + shell: bash + command: | + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./SignOutput/${{ env.filename }}.exe" -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=@./SignOutput/${{ env.filename }}.msi" -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=@./SignOutput/${{ env.filename }}.exe" ${{ env.apiServer }}/api/save_custom_client - curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./SignOutput/${{ env.filename }}.msi" ${{ env.apiServer }}/api/save_custom_client || true + uses: nick-fields/retry@v3 + with: + timeout_minutes: 1 + max_attempts: 3 + shell: bash + command: | + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./SignOutput/${{ env.filename }}.exe" ${{ env.apiServer }}/api/save_custom_client + curl -i -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer ${{ env.token }}" -F "file=@./SignOutput/${{ env.filename }}.msi" ${{ env.apiServer }}/api/save_custom_client || true - name: Report Status uses: fjogeleit/http-request-action@v1 @@ -700,6 +708,6 @@ jobs: if: always() steps: - name: Delete secrets artifact - uses: geekyeggo/delete-artifact@v1 + uses: geekyeggo/delete-artifact@v5 with: name: encrypted-secrets-zip diff --git a/README.md b/README.md index e2ccc0a..51d84f3 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,10 @@ If you would like to host the generator yourself, see [here](setup.md) - Set default settings for the client - Support for rustdesk advanced settings (https://rustdesk.com/docs/en/self-host/client-configuration/advanced-settings/) +## Generate RustDesk clients from command line instead of using a web browser + +Save your configuration from the rdgen web interface, or generate your own, then use that json file with [@AlekseyLapunov's rdgen-cli](https://github.com/AlekseyLapunov/rdgen-cli) to build from the command line on Windows, Linux, or MacOS like this: `python rdgen-cli -f my_config.json --set-version 1.4.5 --set-platform windows -s https://rdgen.crayoneater.org` + ## Notes - Icons should be square (256x256 recommended)