diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 906459d..36301a8 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -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" \ No newline at end of file + run: mctl -v | grep "mctl version v0.3.4" \ No newline at end of file diff --git a/TODO.txt b/TODO.txt deleted file mode 100644 index 4f059cd..0000000 --- a/TODO.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/action.yaml b/action.yaml index 0ba21fe..dbe0be6 100644 --- a/action.yaml +++ b/action.yaml @@ -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)" diff --git a/install.sh b/install.sh index 63cf71a..20ab819 100755 --- a/install.sh +++ b/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 \ No newline at end of file +installCommands \ No newline at end of file