From 8d45d52f3eab1663ccb94f7ade0c5a6abe761dea Mon Sep 17 00:00:00 2001 From: OpenWaygate <27287694+OpenWaygate@users.noreply.github.com> Date: Wed, 13 Mar 2024 10:17:25 +0800 Subject: [PATCH] :sparkles: Show version of yutu --- .github/workflows/go-ossf-slsa3-publish.yml | 2 +- .slsa-goreleaser/darwin-amd64.yml | 9 ++++---- .slsa-goreleaser/darwin-arm64.yml | 9 ++++---- .slsa-goreleaser/linux-amd64.yml | 9 ++++---- .slsa-goreleaser/linux-arm64.yml | 9 ++++---- .slsa-goreleaser/windows-amd64.yml | 9 ++++---- .slsa-goreleaser/windows-arm64.yml | 9 ++++---- cmd/version.go | 24 +++++++++++++++++++++ 8 files changed, 49 insertions(+), 31 deletions(-) create mode 100644 cmd/version.go diff --git a/.github/workflows/go-ossf-slsa3-publish.yml b/.github/workflows/go-ossf-slsa3-publish.yml index bebd798..ebe04d0 100644 --- a/.github/workflows/go-ossf-slsa3-publish.yml +++ b/.github/workflows/go-ossf-slsa3-publish.yml @@ -62,7 +62,7 @@ jobs: go-version: 1.21.5 private-repository: true config-file: .slsa-goreleaser/${{ matrix.os }}-${{ matrix.arch }}.yml - evaluated-envs: "COMMIT_DATE:${{needs.args.outputs.commit-date}}, COMMIT:${{needs.args.outputs.commit}}, VERSION:${{needs.args.outputs.version}}, TREE_STATE:${{needs.args.outputs.tree-state}}" + evaluated-envs: "MODULE_PATH:${{ github.repository }}, COMMIT_DATE:${{needs.args.outputs.commit-date}}, COMMIT:${{needs.args.outputs.commit}}, VERSION:${{needs.args.outputs.version}}, TREE_STATE:${{needs.args.outputs.tree-state}}" # ======================================================================================================= # Optional: For more options, see https://github.com/slsa-framework/slsa-github-generator#golang-projects # ======================================================================================================= diff --git a/.slsa-goreleaser/darwin-amd64.yml b/.slsa-goreleaser/darwin-amd64.yml index 9d85c82..8cc22f6 100644 --- a/.slsa-goreleaser/darwin-amd64.yml +++ b/.slsa-goreleaser/darwin-amd64.yml @@ -26,11 +26,10 @@ main: ./main.go # Binary output name. # {{ .Os }} will be replaced by goos field in the config file. # {{ .Arch }} will be replaced by goarch field in the config file. -binary: binary-{{ .Os }}-{{ .Arch }} +binary: yutu-{{ .Os }}-{{ .Arch }} # (Optional) ldflags generated dynamically in the workflow, and set as the `evaluated-envs` input variables in the workflow. ldflags: - - "-X main.Version={{ .Env.VERSION }}" - - "-X main.Commit={{ .Env.COMMIT }}" - - "-X main.CommitDate={{ .Env.COMMIT_DATE }}" - - "-X main.TreeState={{ .Env.TREE_STATE }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Version={{ .Env.VERSION }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Commit={{ .Env.COMMIT }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.CommitDate={{ .Env.COMMIT_DATE }}" diff --git a/.slsa-goreleaser/darwin-arm64.yml b/.slsa-goreleaser/darwin-arm64.yml index c87d75e..d318f4c 100644 --- a/.slsa-goreleaser/darwin-arm64.yml +++ b/.slsa-goreleaser/darwin-arm64.yml @@ -26,11 +26,10 @@ main: ./main.go # Binary output name. # {{ .Os }} will be replaced by goos field in the config file. # {{ .Arch }} will be replaced by goarch field in the config file. -binary: binary-{{ .Os }}-{{ .Arch }} +binary: yutu-{{ .Os }}-{{ .Arch }} # (Optional) ldflags generated dynamically in the workflow, and set as the `evaluated-envs` input variables in the workflow. ldflags: - - "-X main.Version={{ .Env.VERSION }}" - - "-X main.Commit={{ .Env.COMMIT }}" - - "-X main.CommitDate={{ .Env.COMMIT_DATE }}" - - "-X main.TreeState={{ .Env.TREE_STATE }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Version={{ .Env.VERSION }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Commit={{ .Env.COMMIT }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.CommitDate={{ .Env.COMMIT_DATE }}" diff --git a/.slsa-goreleaser/linux-amd64.yml b/.slsa-goreleaser/linux-amd64.yml index 6f3549b..2001002 100644 --- a/.slsa-goreleaser/linux-amd64.yml +++ b/.slsa-goreleaser/linux-amd64.yml @@ -26,11 +26,10 @@ main: ./main.go # Binary output name. # {{ .Os }} will be replaced by goos field in the config file. # {{ .Arch }} will be replaced by goarch field in the config file. -binary: binary-{{ .Os }}-{{ .Arch }} +binary: yutu-{{ .Os }}-{{ .Arch }} # (Optional) ldflags generated dynamically in the workflow, and set as the `evaluated-envs` input variables in the workflow. ldflags: - - "-X main.Version={{ .Env.VERSION }}" - - "-X main.Commit={{ .Env.COMMIT }}" - - "-X main.CommitDate={{ .Env.COMMIT_DATE }}" - - "-X main.TreeState={{ .Env.TREE_STATE }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Version={{ .Env.VERSION }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Commit={{ .Env.COMMIT }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.CommitDate={{ .Env.COMMIT_DATE }}" diff --git a/.slsa-goreleaser/linux-arm64.yml b/.slsa-goreleaser/linux-arm64.yml index a775471..1b14af4 100644 --- a/.slsa-goreleaser/linux-arm64.yml +++ b/.slsa-goreleaser/linux-arm64.yml @@ -26,11 +26,10 @@ main: ./main.go # Binary output name. # {{ .Os }} will be replaced by goos field in the config file. # {{ .Arch }} will be replaced by goarch field in the config file. -binary: binary-{{ .Os }}-{{ .Arch }} +binary: yutu-{{ .Os }}-{{ .Arch }} # (Optional) ldflags generated dynamically in the workflow, and set as the `evaluated-envs` input variables in the workflow. ldflags: - - "-X main.Version={{ .Env.VERSION }}" - - "-X main.Commit={{ .Env.COMMIT }}" - - "-X main.CommitDate={{ .Env.COMMIT_DATE }}" - - "-X main.TreeState={{ .Env.TREE_STATE }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Version={{ .Env.VERSION }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Commit={{ .Env.COMMIT }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.CommitDate={{ .Env.COMMIT_DATE }}" diff --git a/.slsa-goreleaser/windows-amd64.yml b/.slsa-goreleaser/windows-amd64.yml index f4a3144..06aea8e 100644 --- a/.slsa-goreleaser/windows-amd64.yml +++ b/.slsa-goreleaser/windows-amd64.yml @@ -26,11 +26,10 @@ main: ./main.go # Binary output name. # {{ .Os }} will be replaced by goos field in the config file. # {{ .Arch }} will be replaced by goarch field in the config file. -binary: binary-{{ .Os }}-{{ .Arch }}.exe +binary: yutu-{{ .Os }}-{{ .Arch }}.exe # (Optional) ldflags generated dynamically in the workflow, and set as the `evaluated-envs` input variables in the workflow. ldflags: - - "-X main.Version={{ .Env.VERSION }}" - - "-X main.Commit={{ .Env.COMMIT }}" - - "-X main.CommitDate={{ .Env.COMMIT_DATE }}" - - "-X main.TreeState={{ .Env.TREE_STATE }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Version={{ .Env.VERSION }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Commit={{ .Env.COMMIT }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.CommitDate={{ .Env.COMMIT_DATE }}" diff --git a/.slsa-goreleaser/windows-arm64.yml b/.slsa-goreleaser/windows-arm64.yml index c805be0..d1e2040 100644 --- a/.slsa-goreleaser/windows-arm64.yml +++ b/.slsa-goreleaser/windows-arm64.yml @@ -26,11 +26,10 @@ main: ./main.go # Binary output name. # {{ .Os }} will be replaced by goos field in the config file. # {{ .Arch }} will be replaced by goarch field in the config file. -binary: binary-{{ .Os }}-{{ .Arch }}.exe +binary: yutu-{{ .Os }}-{{ .Arch }}.exe # (Optional) ldflags generated dynamically in the workflow, and set as the `evaluated-envs` input variables in the workflow. ldflags: - - "-X main.Version={{ .Env.VERSION }}" - - "-X main.Commit={{ .Env.COMMIT }}" - - "-X main.CommitDate={{ .Env.COMMIT_DATE }}" - - "-X main.TreeState={{ .Env.TREE_STATE }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Version={{ .Env.VERSION }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.Commit={{ .Env.COMMIT }}" + - "-X {{ .Env.MODULE_PATH }}/cmd.CommitDate={{ .Env.COMMIT_DATE }}" diff --git a/cmd/version.go b/cmd/version.go new file mode 100644 index 0000000..e925b03 --- /dev/null +++ b/cmd/version.go @@ -0,0 +1,24 @@ +package cmd + +import "github.com/spf13/cobra" + +var ( + Version string = "" + Commit string = "" + CommitDate string = "" + Os string = "" + Arch string = "" +) + +var versionCmd = &cobra.Command{ + Use: "version", + Short: "Show the version of yutu", + Long: "Show the version of yutu", + Run: func(cmd *cobra.Command, args []string) { + cmd.Printf("yutu version %s %s/%s\nbuild %s-%s\n", Version, Commit, CommitDate, Os, Arch) + }, +} + +func init() { + RootCmd.AddCommand(versionCmd) +}