From 1c052413714e5f12478a2daf23e614662f80cd7e Mon Sep 17 00:00:00 2001 From: XLion Date: Sat, 21 Sep 2024 21:34:52 +0800 Subject: [PATCH] setup --- .gitattributes | 1 + .github/workflows/latest.yml | 70 ++++++++++++++++++++++++++++++++++++ override | 2 ++ pubkey.gpg | 52 +++++++++++++++++++++++++++ rustdesk_latest.sh | 33 +++++++++++++++++ 5 files changed, 158 insertions(+) create mode 100644 .gitattributes create mode 100644 .github/workflows/latest.yml create mode 100644 override create mode 100644 pubkey.gpg create mode 100644 rustdesk_latest.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..2125666 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/.github/workflows/latest.yml b/.github/workflows/latest.yml new file mode 100644 index 0000000..8d8092f --- /dev/null +++ b/.github/workflows/latest.yml @@ -0,0 +1,70 @@ +name: Create Repo + +on: + #schedule: + # Every 6AM + #- cron: "0 6 * * *" + workflow_dispatch: + + + +permissions: + contents: read + pages: write + id-token: write + +env: + REPO_NAME: xlion-apt-repo + CODENAME: main + COMPONENTS: latest + ARCHITECTURES: amd64 arm64 + +jobs: + build: + runs-on: ubuntu-latest + outputs: + artifact_id: ${{ steps.upload-artifact.outputs.artifact-id }} + keyring: ${{ steps.create-apt-repo.outputs.keyring }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v4 + + - name: Download RustDesk + run: | + bash rustdesk_latest.sh + + - uses: morph027/apt-repo-action@main + id: create-apt-repo + with: + repo-name: ${{ env.REPO_NAME }} + signing-key: ${{ secrets.SIGNING_KEY }} + codename: ${{ env.CODENAME }} + components: ${{ env.COMPONENTS }} + architectures: ${{ env.ARCHITECTURES }} + override: ./override # the location of the file within your repo, thats why checkout is needed before + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + with: + name: github-pages + path: ${{ steps.create-apt-repo.outputs.dir }} + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + - name: Adding summary + run: | + echo ':rocket:' >> $GITHUB_STEP_SUMMARY + echo '' >> $GITHUB_STEP_SUMMARY + echo '```bash' >> $GITHUB_STEP_SUMMARY + echo 'curl -sfLo /etc/apt.trusted.gpg.d/${{ needs.build.outputs.keyring }}.asc ${{ steps.deploy-pages.outputs.page_url }}gpg.key' >> $GITHUB_STEP_SUMMARY + echo 'echo "deb ${{ steps.deploy-pages.outputs.page_url }} ${{ env.CODENAME }} ${{ env.COMPONENTS }}" >/etc/apt/sources.list.d/${{ env.REPO_NAME }}.list' >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY diff --git a/override b/override new file mode 100644 index 0000000..4da76bb --- /dev/null +++ b/override @@ -0,0 +1,2 @@ +rustdesk Section main +rustdesk Priority optional \ No newline at end of file diff --git a/pubkey.gpg b/pubkey.gpg new file mode 100644 index 0000000..142d6c8 --- /dev/null +++ b/pubkey.gpg @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +xbPNSD8= +=hINg +-----END PGP PUBLIC KEY BLOCK----- diff --git a/rustdesk_latest.sh b/rustdesk_latest.sh new file mode 100644 index 0000000..4cda086 --- /dev/null +++ b/rustdesk_latest.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Define the repository and the tag you want to fetch +REPO="rustdesk/rustdesk" +TAG="latest" # Change this to any tag you want +API_URL="https://api.github.com/repos/$REPO/releases/tags/$TAG" + +# Fetch the release data for the specified tag using curl +RELEASE_DATA=$(curl --retry 3 -s "$API_URL") + +# Check if RELEASE_DATA is not empty +if [ -z "$RELEASE_DATA" ]; then + echo "Failed to fetch release data. Please check your internet connection or the repository/tag name." + exit 1 +fi + +# Use jq to parse JSON data and find the asset URL +RUSTDESK_URL_AMD64=$(echo "$RELEASE_DATA" | jq -r '.assets[] | select(.name | contains("x86_64") and endswith(".deb") and (contains("sciter") | not)) | .browser_download_url' | head -n 1) +RUSTDESK_URL_ARM64=$(echo "$RELEASE_DATA" | jq -r '.assets[] | select(.name | contains("aarch64") and endswith(".deb") and (contains("sciter") | not)) | .browser_download_url' | head -n 1) +# Check if the asset URL was found +#if [ -z "$RUSTDESK_URL" ]; then +# echo "No matching file found." +#else +# echo "RUSTDESK_URL=\"$RUSTDESK_URL\"" +#fi + +echo "--------------------RESULT--------------------" +echo "RUSTDESK_URL_AMD64=\"$RUSTDESK_URL_AMD64\"" +echo "RUSTDESK_URL_ARM64=\"$RUSTDESK_URL_ARM64\"" +echo "" +echo "------------------DOWNLOADING-----------------" +wget $RUSTDESK_URL_AMD64 +wget $RUSTDESK_URL_ARM64