feature/version-check #2
@ -1,13 +1,10 @@
|
||||
name: "test"
|
||||
run-name: "test"
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: [smoketest]
|
||||
runs-on: action
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@ -19,9 +16,8 @@ jobs:
|
||||
- name: "run go install script"
|
||||
shell: bash
|
||||
env:
|
||||
GO_INSTALL_COMMANDS: github.com/jake-young-dev/kelp@v0.0.9
|
||||
GO_INSTALL_COMMANDS: code.jakeyoungdev.com/jake/mctl@v0.3.4
|
||||
GO_INSTALL_ARCH: amd64
|
||||
GO_INSTALL_PURGE: no
|
||||
run: |
|
||||
chmod +x install.sh
|
||||
./install.sh
|
||||
@ -32,4 +28,4 @@ jobs:
|
||||
|
||||
- name: "check go installed command"
|
||||
shell: bash
|
||||
run: kelp -v | grep "kelp version v0.0.9"
|
||||
run: mctl -v | grep "mctl version v0.3.4"
|
3
TODO.txt
3
TODO.txt
@ -1,3 +0,0 @@
|
||||
Comments are left in code using TODO# to track possible implementation location.
|
||||
|
||||
TODO1. check current installed version to see if it matches requested install version, only error if they don't match
|
@ -3,7 +3,7 @@ description: "simple and fast install for golang and golang commands on linux wo
|
||||
inputs:
|
||||
arch:
|
||||
description: "Optional, the linux architecture to use when downloading Go files (default: amd64)"
|
||||
required: true
|
||||
required: false
|
||||
default: "amd64"
|
||||
purge:
|
||||
description: "Optional, deletes any previously installed go versions (yes|no)"
|
||||
|
53
install.sh
53
install.sh
@ -1,5 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
#installs any commands set in the command input value
|
||||
function installCommands {
|
||||
#if commands input is set pull the input and install them all using 'go install'
|
||||
if [[ "$GO_INSTALL_COMMANDS" != "." ]]; then # "." is used as a default
|
||||
#allows for multiple cmds using |
|
||||
INPUT_ARR=( $GO_INSTALL_COMMANDS )
|
||||
for i in "${INPUT_ARR[@]}"; do
|
||||
echo "Installing go command from ${i}"
|
||||
if go install ${i}; then
|
||||
echo "Command setup for ${i}"
|
||||
else
|
||||
echo "FATAL: Unable to install ${i} with go"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
#start script
|
||||
echo "Starting Golang install"
|
||||
|
||||
#validate version and architecture
|
||||
@ -30,17 +49,24 @@ echo "Checking if go is already installed"
|
||||
# -v writes string that indicates command or command path to output, prevents command not found error
|
||||
GO_CHECK=$(command -v go)
|
||||
if [[ "$GO_CHECK" ]]; then
|
||||
#if purge flag is set remove old go files
|
||||
if [[ "$GO_INSTALL_PURGE" == "yes" ]]; then
|
||||
#if the version of go matches the requested version, skip
|
||||
GVC=$(go version)
|
||||
if [[ "$GVC" == "go version go${DL_VERSION} linux/${DL_ARCH}" ]]; then
|
||||
echo "Go ${DL_VERSION} already installed, skipping!"
|
||||
installCommands
|
||||
exit 0
|
||||
fi
|
||||
#if the purge flag is not set and version does not match, exit
|
||||
if [[ "$GO_INSTALL_PURGE" != "yes" ]]; then
|
||||
echo "FATAL: The wrong version of Go is already installed, set purge to 'yes' if you wish to update installed version"
|
||||
exit 1
|
||||
else
|
||||
echo "Removing old go versions"
|
||||
sudo rm -r /usr/bin/go
|
||||
sudo rm -r /usr/bin/gofmt
|
||||
else
|
||||
#TODO1: if installed version matches requested version we can consider the job successful
|
||||
echo "FATAL: Go is already installed, set purge to 'yes' if you wish to update installed version"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Ready for install"
|
||||
|
||||
echo "Downloading go files for ${DL_VERSION}/${DL_ARCH}"
|
||||
@ -82,17 +108,4 @@ GP=$(go env GOPATH)/bin
|
||||
export PATH=$PATH:$GP
|
||||
echo "$GP" >> "$GITHUB_PATH"
|
||||
|
||||
#if commands input is set pull the input and install them all using 'go install'
|
||||
if [[ "$GO_INSTALL_COMMANDS" != "." ]]; then # "." is used as a default
|
||||
#allows for multiple cmds using |
|
||||
INPUT_ARR=( $GO_INSTALL_COMMANDS )
|
||||
for i in "${INPUT_ARR[@]}"; do
|
||||
echo "Installing go command from ${i}"
|
||||
if go install ${i}; then
|
||||
echo "Command setup for ${i}"
|
||||
else
|
||||
echo "FATAL: Unable to install ${i} with go"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
installCommands
|
Loading…
x
Reference in New Issue
Block a user