mirror of
https://github.com/thegeeklab/git-sv.git
synced 2024-11-15 04:00:39 +00:00
Merge pull request #32 from bvieira/minor-improvement
Feature: return tag name on git sv tag
This commit is contained in:
commit
d53ef6588d
92
.github/workflows/ci.yml
vendored
92
.github/workflows/ci.yml
vendored
@ -2,18 +2,21 @@ name: ci
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
branches: [master]
|
||||
paths-ignore:
|
||||
- "**.md"
|
||||
- "**/.gitignore"
|
||||
- ".github/workflows/**"
|
||||
|
||||
jobs:
|
||||
|
||||
golangci:
|
||||
lint:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: golangci-lint
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Run golangci lint
|
||||
uses: golangci/golangci-lint-action@v2
|
||||
with:
|
||||
version: latest
|
||||
@ -22,15 +25,78 @@ jobs:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Set up Go 1.x
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: ^1.16
|
||||
id: go
|
||||
|
||||
- name: Check out code into the Go module directory
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Build
|
||||
run: make build
|
||||
|
||||
tag:
|
||||
name: Tag
|
||||
runs-on: ubuntu-latest
|
||||
needs: [lint, build]
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set GitHub Actions as commit author
|
||||
shell: bash
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Setup sv4git
|
||||
run: |
|
||||
curl -s https://api.github.com/repos/bvieira/sv4git/releases/latest | jq -r '.assets[] | select(.browser_download_url | contains("linux")) | .browser_download_url' | wget -O /tmp/sv4git.tar.gz -qi - \
|
||||
&& tar -C /usr/local/bin -xzf /tmp/sv4git.tar.gz
|
||||
|
||||
- name: Create tag
|
||||
id: create-tag
|
||||
run: |
|
||||
git sv tag
|
||||
VERSION=$(git sv cv)
|
||||
echo "::set-output name=tag::v$VERSION"
|
||||
outputs:
|
||||
tag: ${{ steps.create-tag.outputs.tag }}
|
||||
|
||||
release:
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
needs: [tag]
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup sv4git
|
||||
run: |
|
||||
curl -s https://api.github.com/repos/bvieira/sv4git/releases/latest | jq -r '.assets[] | select(.browser_download_url | contains("linux")) | .browser_download_url' | wget -O /tmp/sv4git.tar.gz -qi - \
|
||||
&& tar -C /usr/local/bin -xzf /tmp/sv4git.tar.gz
|
||||
|
||||
- name: Set up Go
|
||||
id: go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: ^1.16
|
||||
|
||||
- name: Create release notes
|
||||
run: |
|
||||
git sv rn -t "${{ needs.tag.outputs.tag }}" > release-notes.md
|
||||
|
||||
- name: Build releases
|
||||
run: make release-all
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
body_path: release-notes.md
|
||||
tag_name: ${{ needs.tag.outputs.tag }}
|
||||
fail_on_unmatched_files: true
|
||||
files: |
|
||||
bin/git-sv_*
|
||||
|
35
.github/workflows/pull-request.yml
vendored
Normal file
35
.github/workflows/pull-request.yml
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
name: pull_request
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- '**/.gitignore'
|
||||
|
||||
jobs:
|
||||
|
||||
lint:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Run golangci lint
|
||||
uses: golangci/golangci-lint-action@v2
|
||||
with:
|
||||
version: latest
|
||||
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: ^1.16
|
||||
id: go
|
||||
- name: Build
|
||||
run: make build
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,6 +13,7 @@ bin/
|
||||
*.out
|
||||
|
||||
*.sample
|
||||
todo
|
||||
|
||||
# Additional generated artifacts
|
||||
artifacts/
|
||||
|
@ -263,9 +263,9 @@ func tagHandler(git sv.Git, semverProcessor sv.SemVerCommitsProcessor) func(c *c
|
||||
}
|
||||
|
||||
nextVer, _ := semverProcessor.NextVersion(currentVer, commits)
|
||||
fmt.Printf("%d.%d.%d\n", nextVer.Major(), nextVer.Minor(), nextVer.Patch())
|
||||
|
||||
if err := git.Tag(nextVer); err != nil {
|
||||
tagname, err := git.Tag(nextVer)
|
||||
fmt.Println(tagname)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error generating tag version: %s, message: %v", nextVer.String(), err)
|
||||
}
|
||||
return nil
|
||||
|
@ -140,7 +140,7 @@ func main() {
|
||||
}
|
||||
|
||||
if apperr := app.Run(os.Args); apperr != nil {
|
||||
log.Fatal("failed to run cli, error: ", apperr)
|
||||
log.Fatal("ERROR: ", apperr)
|
||||
}
|
||||
}
|
||||
|
||||
|
13
sv/git.go
13
sv/git.go
@ -23,7 +23,7 @@ type Git interface {
|
||||
LastTag() string
|
||||
Log(lr LogRange) ([]GitCommitLog, error)
|
||||
Commit(header, body, footer string) error
|
||||
Tag(version semver.Version) error
|
||||
Tag(version semver.Version) (string, error)
|
||||
Tags() ([]GitTag, error)
|
||||
Branch() string
|
||||
IsDetached() (bool, error)
|
||||
@ -123,17 +123,20 @@ func (g GitImpl) Commit(header, body, footer string) error {
|
||||
}
|
||||
|
||||
// Tag create a git tag.
|
||||
func (g GitImpl) Tag(version semver.Version) error {
|
||||
func (g GitImpl) Tag(version semver.Version) (string, error) {
|
||||
tag := fmt.Sprintf(g.tagCfg.Pattern, version.Major(), version.Minor(), version.Patch())
|
||||
tagMsg := fmt.Sprintf("Version %d.%d.%d", version.Major(), version.Minor(), version.Patch())
|
||||
|
||||
tagCommand := exec.Command("git", "tag", "-a", tag, "-m", tagMsg)
|
||||
if err := tagCommand.Run(); err != nil {
|
||||
return err
|
||||
if out, err := tagCommand.CombinedOutput(); err != nil {
|
||||
return tag, combinedOutputErr(err, out)
|
||||
}
|
||||
|
||||
pushCommand := exec.Command("git", "push", "origin", tag)
|
||||
return pushCommand.Run()
|
||||
if out, err := pushCommand.CombinedOutput(); err != nil {
|
||||
return tag, combinedOutputErr(err, out)
|
||||
}
|
||||
return tag, nil
|
||||
}
|
||||
|
||||
// Tags list repository tags.
|
||||
|
Loading…
Reference in New Issue
Block a user