|
9 | 9 |
|
10 | 10 | MYREPO=${HOME}/workdir/${REPO_SLUG}
|
11 | 11 |
|
| 12 | +ARCH="amd64" |
| 13 | +OS="$(uname -s | tr '[:upper:]' '[:lower:]')" |
| 14 | +case "$OS" in |
| 15 | +mingw* | msys* ) OS=windows ;; |
| 16 | +esac |
| 17 | + |
| 18 | +[[ $OS == 'windows' ]] && windows=1 |
| 19 | + |
| 20 | +download() { |
| 21 | + case "$OS" in |
| 22 | + windows ) |
| 23 | + WINDOWS_URL=$(curl -u $GITHUB_USER:$GITHUB_TOKEN https://api.github.com/repos/$1/$2/releases/latest 2>/dev/null | jq -r '.assets[] | select(.browser_download_url | contains("windows-amd64")) | .browser_download_url') |
| 24 | + echo "$WINDOWS_URL" |
| 25 | + curl -fsSLO "$WINDOWS_URL" |
| 26 | + unzip "$(basename "$WINDOWS_URL")" bin/hub.exe |
| 27 | + rm -f "$(basename "$WINDOWS_URL")" |
| 28 | + ;; |
| 29 | + darwin ) |
| 30 | + DARWIN_URL=$(curl -u $GITHUB_USER:$GITHUB_TOKEN https://api.github.com/repos/$1/$2/releases/latest 2>/dev/null | jq -r '.assets[] | select(.browser_download_url | contains("darwin-amd64")) | .browser_download_url') |
| 31 | + curl -fsSL "$DARWIN_URL" -o - | tar xz --strip-components=1 '*/bin/hub' |
| 32 | + ;; |
| 33 | + * ) |
| 34 | + LINUX_URL=$(curl -u $GITHUB_USER:$GITHUB_TOKEN https://api.github.com/repos/$1/$2/releases/latest 2>/dev/null | jq -r '.assets[] | select(.browser_download_url | contains("linux-amd64")) | .browser_download_url') |
| 35 | + curl -fsSL "$LINUX_URL" | tar xz --strip-components=1 --wildcards '*/bin/hub' |
| 36 | + ;; |
| 37 | + esac |
| 38 | +} |
| 39 | + |
| 40 | +function install_binary { |
| 41 | + mkdir -p ~/bin |
| 42 | + |
| 43 | + # https://code-maven.com/create-temporary-directory-on-linux-using-bash |
| 44 | + tmp_dir=$(mktemp -d -t ci-XXXXXXXXXX) |
| 45 | + |
| 46 | + cd $tmp_dir |
| 47 | + |
| 48 | + download $1 $2 |
| 49 | + |
| 50 | + if [ ! -f "$tmp_dir/bin/hub${windows:+.exe}" ]; then |
| 51 | + echo "Failed to obtain $tmp_dir/bin/hub${windows:+.exe}" |
| 52 | + exit 1 |
| 53 | + fi |
| 54 | + mkdir -p ~/bin/ |
| 55 | + mv $tmp_dir/bin/hub${windows:+.exe} ~/bin/ |
| 56 | + |
| 57 | + chmod +x ~/bin/hub${windows:+.exe} |
| 58 | + |
| 59 | + # verify |
| 60 | + ~/bin/hub${windows:+.exe} version |
| 61 | + |
| 62 | + # cleanup |
| 63 | + rm -rf $tmp_dir |
| 64 | +} |
| 65 | + |
| 66 | + |
12 | 67 | function prep_workspace {
|
13 | 68 | rm -rf ${MYREPO}
|
14 | 69 | mkdir -p ${MYREPO}
|
@@ -37,7 +92,8 @@ function release_github {
|
37 | 92 | LAST_VERSION=$(grep '^## \d\+\.\d\+.\d\+' ${CHANGELOG} | awk 'NR==2')
|
38 | 93 |
|
39 | 94 | DESCRIPTION=$(awk "/^${NEW_VERSION}$/,/^${LAST_VERSION:-nothingmatched}$/" ${CHANGELOG} | grep -v "^${LAST_VERSION:-nothingmatched}$")
|
40 |
| - |
| 95 | + install_binary mislav hub |
| 96 | + hub version |
41 | 97 | hub release create v${VERSION} -m "Release ${VERSION}" -m "${DESCRIPTION}" -t "${BRANCH}"
|
42 | 98 | }
|
43 | 99 |
|
|
0 commit comments