chore: add github workflow to build nfctl

This commit is contained in:
loveuer 2024-07-13 21:56:47 +08:00
parent b267cc7a2e
commit d72d2a8302
3 changed files with 69 additions and 4 deletions

60
.github/workflows/nfctl.yml vendored Normal file
View File

@ -0,0 +1,60 @@
name: Auto Build
on:
push:
branches:
- 'master'
env:
RELEASE_VERSION: v24.07.13-r1
jobs:
build-job:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
pull-requests: write
repository-projects: write
steps:
- name: checkout repository
uses: actions/checkout@v4
- name: install golang
uses: actions/setup-go@v4
with:
go-version: '1.20'
- name: build linux amd64
run: CGO_ENABLE=0 GOOS=linux GOARCH=amd64 go build -ldflags='-s -w' -o dist/nfctl-linux_amd64-$RELEASE_VERSION nft/nfctl/main.go
- name: build linux arm64
run: CGO_ENABLE=0 GOOS=linux GOARCH=arm64 go build -ldflags='-s -w' -o dist/nfctl-linux_arm64-$RELEASE_VERSION nft/nfctl/main.go
- name: build windows amd64
run: CGO_ENABLE=0 GOOS=windows GOARCH=amd64 go build -ldflags='-s -w' -o dist/nfctl-win_amd64-$RELEASE_VERSION.exe nft/nfctl/main.go
- name: build windows arm64
run: CGO_ENABLE=0 GOOS=windows GOARCH=arm64 go build -ldflags='-s -w' -o dist/nfctl-win_arm64-$RELEASE_VERSION.exe nft/nfctl/main.go
- name: build darwin amd64
run: CGO_ENABLE=0 GOOS=darwin GOARCH=amd64 go build -ldflags='-s -w' -o dist/nfctl-darwin_arm64-$RELEASE_VERSION nft/nfctl/main.go
- name: build darwin arm64
run: CGO_ENABLE=0 GOOS=darwin GOARCH=arm64 go build -ldflags='-s -w' -o dist/nfctl-darwin_arm64-$RELEASE_VERSION nft/nfctl/main.go
- name: create releases
id: create_releases
uses: "marvinpinto/action-automatic-releases@latest"
with:
automatic_release_tag: "Release-nfctl-$RELEASE_VERSION"
repo_token: "${{ secrets.GITHUB_TOKEN }}"
title: "Release_$RELEASE_VERSION"
prerelease: false
files: |
dist/nfctl-linux_amd64-$RELEASE_VERSION
dist/nfctl-linux_arm64-$RELEASE_VERSION
dist/nfctl-win_amd64-$RELEASE_VERSION.exe
dist/nfctl-win_arm64-$RELEASE_VERSION.exe
dist/nfctl-darwin_arm64-$RELEASE_VERSION
dist/nfctl-darwin_arm64-$RELEASE_VERSION

View File

@ -18,6 +18,9 @@ func main() {
_ = cmd.Root.ExecuteContext(ctx)
// 延迟以便 check 检查
time.Sleep(1500 * time.Millisecond)
select {
case <-time.After(3 * time.Second):
case <-ctx.Done():
case <-version.OkCh:
}
}

View File

@ -11,7 +11,7 @@ import (
"sync"
)
const Version = "v24.07.12-r2"
const Version = "v24.07.13-r1"
var (
lk = &sync.Mutex{}
@ -25,7 +25,8 @@ var (
fmt.Println()
}
}
Fn = empty
Fn = empty
OkCh = make(chan struct{}, 1)
)
func Check() {
@ -57,6 +58,7 @@ func Check() {
lk.Lock()
Fn = upgrade(v)
lk.Unlock()
OkCh <- struct{}{}
return
}
}