Skip to content

Commit

Permalink
[fix] gen version at compile time
Browse files Browse the repository at this point in the history
Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>
  • Loading branch information
freemandealer committed Jan 26, 2024
1 parent 83df87e commit a1aecb8
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 37 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ jobs:
go-version: '1.20'

- name: Build
run: go build -v
run: sh build.sh
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ yum install golang
Then, navigate to the doris-streamloader directory and execute:

```
cd doris-streamloader && go build
cd doris-streamloader && sh build.sh
```


Expand Down
20 changes: 20 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

go generate
go build
65 changes: 65 additions & 0 deletions gen_version.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

//go:build generate
// +build generate

package main

import (
"fmt"
"os"
"os/exec"
"strings"
)

func main() {
commit, err := getGitCommit()
if err != nil {
fmt.Println("Error getting Git commit:", err)
os.Exit(1)
}

tag, err := getGitTag()
if err != nil {
fmt.Println("Error getting Git tag:", err)
os.Exit(1)
}

content := fmt.Sprintf("// Code generated by go generate; DO NOT EDIT.\n\npackage main\n\nvar (\n\tGitCommit = \"%s\"\n\tVersion = \"%s\"\n)\n", commit, tag)

if err := os.WriteFile("version.go", []byte(content), 0644); err != nil {
fmt.Println("Error writing version.go:", err)
os.Exit(1)
}
}

func getGitCommit() (string, error) {
out, err := exec.Command("git", "rev-parse", "HEAD").Output()
if err != nil {
return "", err
}
return strings.Split(string(out), "\n")[0], nil
}

func getGitTag() (string, error) {
out, err := exec.Command("git", "describe", "--tags", "--abbrev=0").Output()
if err != nil {
return "", err
}
return strings.Split(string(out), "\n")[0], nil
}
39 changes: 4 additions & 35 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,13 @@ import (
"fmt"
"math"
"os"
"os/exec"
"strconv"
"strings"
"sync"
"time"

"doris-streamloader/loader"
"doris-streamloader/reader"
file "doris-streamloader/reader"
"doris-streamloader/report"
"doris-streamloader/utils"

Expand Down Expand Up @@ -188,17 +187,11 @@ func initFlags() {
utils.InitLog(logLevel)
}

//go:generate go run gen_version.go
func paramCheck() {
if showVersion {
var err error
commitHash, err := getCommitHash()
if err != nil {
log.Warn("Failed to get commit info", err)
}
version, err := getTag()
if err != nil {
log.Warn("Failed to get version info", err)
}
commitHash := GitCommit

Check failure on line 193 in main.go

View workflow job for this annotation

GitHub Actions / build

undefined: GitCommit
version := Version

Check failure on line 194 in main.go

View workflow job for this annotation

GitHub Actions / build

undefined: Version
fmt.Printf("version %s, git commit %s\n", version, commitHash)
os.Exit(0)
}
Expand Down Expand Up @@ -332,30 +325,6 @@ func createQueues(queues *[]chan []byte) {
}
}

func getCommitHash() (string, error) {
cmd := exec.Command("git", "rev-parse", "HEAD")
outputBytes, err := cmd.Output()
if err != nil {
return "", err
}

commitHash := string(outputBytes)
commitHash = strings.TrimSpace(commitHash)

return commitHash, nil
}

func getTag() (string, error) {
cmd := exec.Command("git", "describe", "--tags", "--abbrev=0")
output, err := cmd.Output()
if err != nil {
return "", err
}

tag := strings.TrimSpace(string(output))
return tag, nil
}

func main() {
initFlags()
retryCount := 0
Expand Down

0 comments on commit a1aecb8

Please sign in to comment.