This is an automated email from the ASF dual-hosted git repository. houshengbo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-wskdeploy.git
The following commit(s) were added to refs/heads/master by this push: new ed5d622 Added date and commit SHA to the version command (#1047) ed5d622 is described below commit ed5d62262fc1c02bc5cf57267306d13ccc25185f Author: Anthony Amanse <ghieama...@gmail.com> AuthorDate: Wed Apr 10 07:44:02 2019 -0700 Added date and commit SHA to the version command (#1047) This commit adds in a date and the head commit SHA. This makes it easy for end-users to verify if their binary is indeed the latest one. The date and git commit are also added in builds for release candidates. Example: ``` ./wskdeploy version wskdeploy version: latest wskdeploy git commit: 50aacbc7992720290f8a4a8696d2288d3c52a0e7 wskdeploy build date: 2019-03-28T20:41:05Z ``` Signed-off-by: AnthonyAmanse <ghieama...@gmail.com> --- .travis.yml | 2 +- Makefile | 4 +++- build.gradle | 8 +++++++- cmd/version.go | 4 ++++ main.go | 6 +++++- tools/travis/build_tag_releases.sh | 4 +++- utils/flags.go | 2 ++ 7 files changed, 25 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index ef5aadd..06d551b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,7 +52,7 @@ before_deploy: export GIT_TAG=$TRAVIS_TAG; export TAG=true; fi -- ./gradlew --console=plain releaseBinaries -PpackageVersion=$GIT_TAG +- ./gradlew --console=plain releaseBinaries -PpackageVersion=$GIT_TAG -PgitCommit=$(git rev-parse HEAD) -PbuildDate=$(date -u +"%Y-%m-%dT%H:%M:%SZ") - "./tools/travis/build_tag_releases.sh $build_file_name $GIT_TAG" - export RELEASE_PKG_FILE="$(cd "$TRAVIS_BUILD_DIR/release" && ls ${zip_file_name}-*.tgz ${zip_file_name}-*.zip)" - echo "Deploying $RELEASE_PKG_FILE to GitHub releases." diff --git a/Makefile b/Makefile index 844c49f..bf632b0 100644 --- a/Makefile +++ b/Makefile @@ -24,11 +24,13 @@ VERSION=latest BUILD=`git rev-parse HEAD` +BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` + deps: @echo "Installing dependencies" godep restore -v -LDFLAGS=-ldflags "-X main.Version=${VERSION} -X main.Build=`git rev-parse HEAD` " +LDFLAGS=-ldflags "-X main.Version=${VERSION} -X main.GitCommit=${BUILD} -X main.BuildDate=${BUILD_DATE} -X main.Build=`git rev-parse HEAD` " test: deps @echo "Testing" diff --git a/build.gradle b/build.gradle index bd194b9..b8c4fdb 100644 --- a/build.gradle +++ b/build.gradle @@ -185,6 +185,12 @@ OpenWhiskPlatform.zipFileName = project.ext.packageVersion = rootProject.findProperty('packageVersion') ?: 'latest' +project.ext.gitCommit = + rootProject.findProperty('gitCommit') ?: 'unset' + +project.ext.buildDate = + rootProject.findProperty('buildDate') ?: 'unset' + String buildFileName = System.env['build_file_name'] ?: (rootProject.findProperty('buildFileName') ?: 'wskdeploy') @@ -237,7 +243,7 @@ goBuild { // WARNING: The single quotes are intentional! The gogradle plugin will // parse the command with the GString engine at execution time. go(['build', - '-ldflags', "-X main.Version=${packageVersion}" as String, + '-ldflags', "-X main.Version=${packageVersion} -X main.GitCommit=${gitCommit} -X main.BuildDate=${buildDate}" as String, '-o', './build/${GOOS}-${GOARCH}/'+buildFileName+'${GOEXE}', golang.packagePath ] as List<String>) } diff --git a/cmd/version.go b/cmd/version.go index 2d4d710..f8775ac 100755 --- a/cmd/version.go +++ b/cmd/version.go @@ -38,5 +38,9 @@ var versionCmd = &cobra.Command{ // Note: no need to translate the following string // TODO(#767) - Flags.CliVersion are not set during build fmt.Sprintf("wskdeploy version: %s", utils.Flags.CliVersion)) + wskprint.PrintlnOpenWhiskOutput( + fmt.Sprintf("wskdeploy git commit: %s", utils.Flags.CliGitCommit)) + wskprint.PrintlnOpenWhiskOutput( + fmt.Sprintf("wskdeploy build date: %s", utils.Flags.CliBuildDate)) }, } diff --git a/main.go b/main.go index 54a8093..156ce5f 100644 --- a/main.go +++ b/main.go @@ -28,9 +28,13 @@ func main() { var ( //Version ...The Version of the tool - Version = "unset" + Version = "unset" + GitCommit = "unset" + BuildDate = "unset" ) func init() { utils.Flags.CliVersion = Version + utils.Flags.CliGitCommit = GitCommit + utils.Flags.CliBuildDate = BuildDate } diff --git a/tools/travis/build_tag_releases.sh b/tools/travis/build_tag_releases.sh index 62bd520..074dd27 100755 --- a/tools/travis/build_tag_releases.sh +++ b/tools/travis/build_tag_releases.sh @@ -20,6 +20,8 @@ declare -a os_list=("linux" "darwin" "windows") declare -a arc_list=("amd64" "386") build_file_name=${1:-"wskdeploy"} build_version=${2:-"$TRAVIS_TAG"} +gitCommit=$(git rev-parse HEAD) +buildDate=$(date -u +"%Y-%m-%dT%H:%M:%SZ") for os in "${os_list[@]}" do @@ -34,7 +36,7 @@ do os_name="mac" fi cd $TRAVIS_BUILD_DIR - GOOS=$os GOARCH=$arc go build -ldflags "-X main.Version=$build_version" -o build/$os/$wskdeploy + GOOS=$os GOARCH=$arc go build -ldflags "-X main.Version=$build_version -X main.GitCommit=$gitCommit -X main.BuildDate=$buildDate" -o build/$os/$wskdeploy cd build/$os if [[ "$os" == "linux" ]]; then tar -czvf "$TRAVIS_BUILD_DIR/$build_file_name-$TRAVIS_TAG-$os_name-$arc.tgz" $wskdeploy diff --git a/utils/flags.go b/utils/flags.go index a860850..3025bf6 100644 --- a/utils/flags.go +++ b/utils/flags.go @@ -29,6 +29,8 @@ type WskDeployFlags struct { ApiVersion string // OpenWhisk version CfgFile string CliVersion string + CliGitCommit string + CliBuildDate string ProjectPath string DeploymentPath string ManifestPath string