mirror of
https://github.com/zerotier/github-action.git
synced 2026-05-22 16:27:40 -07:00
Merge pull request #20 from RichieCahill/move-bash-script-to-separate-files
Move bash script to separate files
This commit is contained in:
+2
-78
@@ -25,81 +25,5 @@ runs:
|
||||
- name: zerotier
|
||||
uses: ./util/post
|
||||
with:
|
||||
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
|
||||
main: ./main.sh
|
||||
post: ./post.sh
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
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
|
||||
@@ -0,0 +1,25 @@
|
||||
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
|
||||
Reference in New Issue
Block a user