diff --git a/README.md b/README.md
index 8d37102..e0ef50d 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,7 @@ Automatically publish `Go` binaries to Github Release Assets through Github Acti
- Support multiple `GOOS`/`GOARCH` build in parallel by [Github Action Matrix Strategy](https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix) gracefully.
- Publish `.zip` instead of `.tar.gz` for `windows`.
- No `musl` library dependency issue on `linux`.
+- Support extra command that will be executed before `go build`. You may want to use it to solve dependency if you're NOT using [Go Modules](https://github.com/golang/go/wiki/Modules).
## Usage
@@ -45,6 +46,7 @@ jobs:
| goversion | **Optional** | The `Go` compiler version. `1.14` by default, optional `1.13`.
It also takes download URL instead of version string if you'd like to use more specified version. But make sure your URL is `linux-amd64` package, better to find the URL from [Go - Downloads](https://golang.org/dl/).
E.g., `https://dl.google.com/go/go1.13.1.linux-amd64.tar.gz`. |
| project_path | **Optional** | Where to run `go build`.
Use `.` by default. |
| binary_name | **Optional** | Specify another binary name if do not want to use repository basename.
Use your repository's basename if not set. |
+| pre_command | **Optional** | Extra command that will be executed before `go build`. You may want to use it to solve dependency if you're NOT using [Go Modules](https://github.com/golang/go/wiki/Modules). |
### Advanced Example
diff --git a/action.yml b/action.yml
index af6c0ed..43f71d9 100644
--- a/action.yml
+++ b/action.yml
@@ -1,7 +1,7 @@
# action.yml
name: 'Go Release Binaries'
author: 'Jay Zhang '
-description: 'Release Go binaries to Github Assets'
+description: 'Release Go binaries to GitHub Release Assets'
inputs:
github_token:
description: 'GITHUB_TOKEN for uploading releases to Github asserts.'
@@ -27,6 +27,10 @@ inputs:
description: 'Specify another binary name if do not want to use repository basename'
required: false
default: ''
+ pre_command:
+ description: 'Extra command that will be executed before `go build`, may for solving dependency'
+ required: false
+ default: ''
runs:
using: 'docker'
image: 'Dockerfile'
@@ -38,6 +42,7 @@ runs:
- ${{ inputs.project_path }}
- ${{ inputs.binary_name }}
- ${{ inputs.compression }}
+ - ${{ inputs.pre_command }}
branding:
icon: 'package'
color: 'blue'
diff --git a/entrypoint.sh b/entrypoint.sh
index 2cf8b16..f83fb1e 100755
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -2,7 +2,10 @@
# prepare golang
source /setup-go.sh
+
+# easy to debug if anything wrong
go version
+env
# build & release go binaries
/release.sh
diff --git a/release.sh b/release.sh
index 2843b25..8b4808c 100755
--- a/release.sh
+++ b/release.sh
@@ -12,6 +12,11 @@ RELEASE_ASSET_NAME=${BINARY_NAME}-${RELEASE_TAG}-${INPUT_GOOS}-${INPUT_GOARCH}
RELEASE_ASSETS_UPLOAD_URL=$(cat ${GITHUB_EVENT_PATH} | jq -r .release.upload_url)
RELEASE_ASSETS_UPLOAD_URL=${RELEASE_ASSETS_UPLOAD_URL%\{?name,label\}}
+# execute pre-command if exist, e.g. `go get -v ./...`
+if [ ! -z "${INPUT_PRE_COMMAND}" ]; then
+ ${INPUT_PRE_COMMAND}
+fi
+
# build binary
cd ${INPUT_PROJECT_PATH}
EXT=''