Skip to content

Commit

Permalink
Merge pull request #21 from zerotier/someara
Browse files Browse the repository at this point in the history
Revert "Merge pull request #20 from RichieCahill/move-bash-script-to-…
  • Loading branch information
someara authored Feb 11, 2024
2 parents 7947819 + aed9107 commit 9d1e170
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 76 deletions.
80 changes: 78 additions & 2 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
49 changes: 0 additions & 49 deletions main.sh

This file was deleted.

25 changes: 0 additions & 25 deletions post.sh

This file was deleted.

0 comments on commit 9d1e170

Please sign in to comment.