From aed910756805c6d1ba45eade6d8c5083050b053b Mon Sep 17 00:00:00 2001 From: Sean OMeara Date: Sun, 11 Feb 2024 17:58:20 +0100 Subject: [PATCH] Revert "Merge pull request #20 from RichieCahill/move-bash-script-to-separate-files" This reverts commit 7947819a037c8cc3f9cccee744f136710908baeb, reversing changes made to d23fa8d1aa1b57a486324c0119dfc2f55dbcb0a5. --- action.yml | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- main.sh | 49 --------------------------------- post.sh | 25 ----------------- 3 files changed, 78 insertions(+), 76 deletions(-) delete mode 100755 main.sh delete mode 100755 post.sh diff --git a/action.yml b/action.yml index 15372f5..9a0ea12 100644 --- a/action.yml +++ b/action.yml @@ -25,5 +25,81 @@ runs: - name: zerotier uses: ./util/post with: - main: ./main.sh - post: ./post.sh + main: | + set -euo pipefail + IFS=$'\n\t' + + echo "⏁ Installing ZeroTier" + + case $(uname -s) in + MINGW64_NT?*) + pwsh "${{ github.action_path }}/util/install.ps1" + ztcli="/c/Program Files (x86)/ZeroTier/One/zerotier-cli.bat" + member_id=$("${ztcli}" info | awk '{ print $3 }') + ;; + *) + . ${{ github.action_path }}/util/install.sh &>/dev/null + member_id=$(sudo zerotier-cli info | awk '{ print $3 }') + ;; + esac + + echo "⏁ Authorizing Runner to ZeroTier network" + MAX_RETRIES=10 + RETRY_COUNT=0 + + while ! curl -s -X POST \ + -H "Authorization: token ${{ inputs.auth_token }}" \ + -H "Content-Type: application/json" \ + -d '{"name":"Zerotier GitHub Member '"${GITHUB_SHA::7}"'", "description": "Member created by '"${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"'", "config":{"authorized":true}}' \ + "${{ inputs.api_url }}/network/${{ inputs.network_id }}/member/${member_id}" | grep '"authorized":true'; + do + RETRY_COUNT=$((RETRY_COUNT+1)) + + if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then + echo "Reached maximum number of retries ($MAX_RETRIES). Exiting..." + exit 1 + fi + + echo "Authorization failed. Retrying in 2 seconds... (Attempt $RETRY_COUNT of $MAX_RETRIES)" + sleep 2 + done + + echo "Member authorized successfully." + echo "⏁ Joining ZeroTier Network ID: ${{ inputs.network_id }}" + case $(uname -s) in + MINGW64_NT?*) + "${ztcli}" join ${{ inputs.network_id }} + while ! "${ztcli}" listnetworks | grep ${{ inputs.network_id }} | grep OK ; do sleep 0.5 ; done + ;; + *) + sudo zerotier-cli join ${{ inputs.network_id }} + while ! sudo zerotier-cli listnetworks | grep ${{ inputs.network_id }} | grep OK ; do sleep 0.5 ; done + ;; + esac + + post: | + set -euo pipefail + IFS=$'\n\t' + + case $(uname -s) in + MINGW64_NT?*) + ztcli="/c/Program Files (x86)/ZeroTier/One/zerotier-cli.bat" + member_id=$("${ztcli}" info | awk '{ print $3 }') + ;; + *) + member_id=$(sudo zerotier-cli info | awk '{ print $3 }') + ;; + esac + + echo "⏁ Removing Runner from ZeroTier network" + curl -i -s -X DELETE -H "Authorization: token ${{ inputs.auth_token }}" "${{ inputs.api_url }}/network/${{ inputs.network_id }}/member/${member_id}" > /tmp/api_delete_output.txt + STATUS_CODE=$(cat /tmp/api_delete_output.txt | grep 'HTTP/' | awk '{print $2}') + + if [[ $STATUS_CODE -ge 400 && $STATUS_CODE -le 599 ]]; then + echo "ERROR: Status code: $STATUS_CODE" + echo -e "Complete server response:\n$(cat /tmp/api_delete_output.txt)\n" + exit $STATUS_CODE + else + echo "Success! Status code: $STATUS_CODE" + exit 0 + fi diff --git a/main.sh b/main.sh deleted file mode 100755 index 92533f4..0000000 --- a/main.sh +++ /dev/null @@ -1,49 +0,0 @@ -set -euo pipefail -IFS=$'\n\t' - -echo "⏁ Installing ZeroTier" - -case $(uname -s) in -MINGW64_NT?*) - pwsh "./util/install.ps1" - ztcli="/c/Program Files (x86)/ZeroTier/One/zerotier-cli.bat" - member_id=$("${ztcli}" info | awk '{ print $3 }') - ;; -*) - . ./util/install.sh &>/dev/null - member_id=$(sudo zerotier-cli info | awk '{ print $3 }') - ;; -esac - -echo "⏁ Authorizing Runner to ZeroTier network" -MAX_RETRIES=10 -RETRY_COUNT=0 - -while ! curl -s -X POST \ - -H "Authorization: token $AUTH_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{"name":"Zerotier GitHub Member '"${GITHUB_SHA::7}"'", "description": "Member created by '"${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"'", "config":{"authorized":true}}' \ - "$API_URL/network/$NETWORK_ID/member/${member_id}" | grep '"authorized":true'; do - RETRY_COUNT=$((RETRY_COUNT + 1)) - - if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then - echo "Reached maximum number of retries ($MAX_RETRIES). Exiting..." - exit 1 - fi - - echo "Authorization failed. Retrying in 2 seconds... (Attempt $RETRY_COUNT of $MAX_RETRIES)" - sleep 2 -done - -echo "Member authorized successfully." -echo "⏁ Joining ZeroTier Network ID: $NETWORK_ID" -case $(uname -s) in -MINGW64_NT?*) - "${ztcli}" join $NETWORK_ID - while ! "${ztcli}" listnetworks | grep $NETWORK_ID | grep OK; do sleep 0.5; done - ;; -*) - sudo zerotier-cli join $NETWORK_ID - while ! sudo zerotier-cli listnetworks | grep $NETWORK_ID | grep OK; do sleep 0.5; done - ;; -esac diff --git a/post.sh b/post.sh deleted file mode 100755 index 325f8e1..0000000 --- a/post.sh +++ /dev/null @@ -1,25 +0,0 @@ -set -euo pipefail -IFS=$'\n\t' - -case $(uname -s) in -MINGW64_NT?*) - ztcli="/c/Program Files (x86)/ZeroTier/One/zerotier-cli.bat" - member_id=$("${ztcli}" info | awk '{ print $3 }') - ;; -*) - member_id=$(sudo zerotier-cli info | awk '{ print $3 }') - ;; -esac - -echo "⏁ Removing Runner from ZeroTier network" -curl -i -s -X DELETE -H "Authorization: token $AUTH_TOKEN" "$API_URL/network/$NETWORK_ID/member/${member_id}" >/tmp/api_delete_output.txt -STATUS_CODE=$(cat /tmp/api_delete_output.txt | grep 'HTTP/' | awk '{print $2}') - -if [[ $STATUS_CODE -ge 400 && $STATUS_CODE -le 599 ]]; then - echo "ERROR: Status code: $STATUS_CODE" - echo -e "Complete server response:\n$(cat /tmp/api_delete_output.txt)\n" - exit $STATUS_CODE -else - echo "Success! Status code: $STATUS_CODE" - exit 0 -fi