From 4b735e37ec6dd0bc5d4998ea30f0996a6947086a Mon Sep 17 00:00:00 2001 From: Shay Nehmad Date: Fri, 17 Apr 2020 01:04:40 +0300 Subject: [PATCH] Use api.github.com to get the latest version That way we don't need to update it manually in each release --- deployment_scripts/config | 44 ++++++++++++++++++++++++----------- deployment_scripts/config.ps1 | 4 +++- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/deployment_scripts/config b/deployment_scripts/config index 5607d37fd..06be20b38 100644 --- a/deployment_scripts/config +++ b/deployment_scripts/config @@ -1,21 +1,37 @@ #!/usr/bin/env bash # Absolute monkey's path -MONKEY_FOLDER_NAME="infection_monkey" +export MONKEY_FOLDER_NAME="infection_monkey" # Url of public git repository that contains monkey's source code -MONKEY_GIT_URL="https://github.com/guardicore/monkey" +export MONKEY_GIT_URL="https://github.com/guardicore/monkey" + +get_latest_release() { + curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub API + grep '"tag_name":' | # Get tag line + sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value +} + +MONKEY_LATEST_RELEASE=$(get_latest_release "monkey/guardicore") # Monkey binaries -LINUX_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/v1.7.0/monkey-linux-32" -LINUX_32_BINARY_NAME="monkey-linux-32" -LINUX_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/v1.7.0/monkey-linux-64" -LINUX_64_BINARY_NAME="monkey-linux-64" -WINDOWS_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/v1.7.0/monkey-windows-32.exe" -WINDOWS_32_BINARY_NAME="monkey-windows-32.exe" -WINDOWS_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/v1.7.0/monkey-windows-64.exe" -WINDOWS_64_BINARY_NAME="monkey-windows-64.exe" +LINUX_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$($MONKEY_LATEST_RELEASE)/monkey-linux-32" +export LINUX_32_BINARY_URL +export LINUX_32_BINARY_NAME="monkey-linux-32" +LINUX_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$($MONKEY_LATEST_RELEASE)/monkey-linux-64" +export LINUX_64_BINARY_URL +export LINUX_64_BINARY_NAME="monkey-linux-64" +WINDOWS_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$($MONKEY_LATEST_RELEASE)/monkey-windows-32.exe" +export WINDOWS_32_BINARY_URL +export WINDOWS_32_BINARY_NAME="monkey-windows-32.exe" +WINDOWS_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$($MONKEY_LATEST_RELEASE)/monkey-windows-64.exe" +export WINDOWS_64_BINARY_URL +export WINDOWS_64_BINARY_NAME="monkey-windows-64.exe" # Other binaries for monkey -TRACEROUTE_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/v1.7.0/traceroute64" -TRACEROUTE_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/v1.7.0/traceroute32" -SAMBACRY_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/v1.7.0/sc_monkey_runner64.so" -SAMBACRY_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/v1.7.0/sc_monkey_runner32.so" \ No newline at end of file +TRACEROUTE_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$($MONKEY_LATEST_RELEASE)/traceroute64" +export TRACEROUTE_64_BINARY_URL +TRACEROUTE_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$($MONKEY_LATEST_RELEASE)/traceroute32" +export TRACEROUTE_32_BINARY_URL +SAMBACRY_64_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$($MONKEY_LATEST_RELEASE)/sc_monkey_runner64.so" +export SAMBACRY_64_BINARY_URL +SAMBACRY_32_BINARY_URL="https://github.com/guardicore/monkey/releases/download/$($MONKEY_LATEST_RELEASE)/sc_monkey_runner32.so" +export SAMBACRY_32_BINARY_URL diff --git a/deployment_scripts/config.ps1 b/deployment_scripts/config.ps1 index b18b7c63c..f12d3adf8 100644 --- a/deployment_scripts/config.ps1 +++ b/deployment_scripts/config.ps1 @@ -1,9 +1,11 @@ # Absolute monkey's path $MONKEY_FOLDER_NAME = "infection_monkey" # Url of public git repository that contains monkey's source code +$MONKEY_REPO = "guardicore/monkey" $MONKEY_GIT_URL = "https://github.com/guardicore/monkey" $MONKEY_RELEASES_URL = $MONKEY_GIT_URL + "/releases" -$MONKEY_LATEST_VERSION = "v1.7.0" +$MONKEY_API_RELEASES_URL = "https://api.github.com/repos/$MONKEY_REPO/releases" +$MONKEY_LATEST_VERSION = (Invoke-WebRequest $MONKEY_API_RELEASES_URL | ConvertFrom-Json)[0].tag_name $MONKEY_DOWNLOAD_URL = $MONKEY_RELEASES_URL + "/download/" + $MONKEY_LATEST_VERSION + "/" # Link to the latest python download or install it manually $PYTHON_URL = "https://www.python.org/ftp/python/3.7.6/python-3.7.6-amd64.exe"