From ae9de636d66748919ccab7abf3bbee18f09b63e5 Mon Sep 17 00:00:00 2001 From: "libo.huang" Date: Wed, 6 Jan 2021 11:51:15 +0800 Subject: [PATCH 1/2] add lint and action --- .github/workflows/build.yml | 26 ++++++++++++++++++ .github/workflows/goreleaser.yml | 27 ++++++++++++++++++ .github/workflows/lint.yml | 22 +++++++++++++++ .gitignore | 4 +-- .golangci.yml | 29 ++++++++++++++++++++ .goreleaser.yml | 47 ++++++++++++++++++++++++++++++++ Makefile | 19 +++++-------- db.go | 3 +- go.mod | 2 +- go.sum | 4 +-- match.go | 3 +- progress.go | 3 +- session.go | 1 - upx.go | 3 +- 14 files changed, 171 insertions(+), 22 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/goreleaser.yml create mode 100644 .github/workflows/lint.yml create mode 100644 .golangci.yml create mode 100644 .goreleaser.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..639d87c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,26 @@ +name: build +on: [push, pull_request] + +jobs: + build: + strategy: + matrix: + go-version: [~1.12, ^1] + os: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + env: + GO111MODULE: "on" + steps: + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go-version }} + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Download Go modules + run: go mod download + + - name: Build + run: go build -v . diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml new file mode 100644 index 0000000..f5f715e --- /dev/null +++ b/.github/workflows/goreleaser.yml @@ -0,0 +1,27 @@ +name: goreleaser + +on: + push: + tags: + - '*' + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - + name: Set up Go + uses: actions/setup-go@v2 + - + name: Run GoReleaser + uses: goreleaser/goreleaser-action@v2 + with: + version: latest + args: release --rm-dist + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..bc78aa4 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,22 @@ +name: lint +on: + push: + pull_request: + +jobs: + golangci: + name: lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: golangci-lint + uses: golangci/golangci-lint-action@v2 + with: + # Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version. + version: v1.31 + # Optional: golangci-lint command line arguments. + args: --issues-exit-code=0 + # Optional: working directory, useful for monorepos + # working-directory: somedir + # Optional: show only new issues if it's a pull request. The default value is `false`. + only-new-issues: true diff --git a/.gitignore b/.gitignore index d026d52..430ec88 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ -.* upx *.swo *.swp *.swn upx-* -release \ No newline at end of file +release +dist diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..393c267 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,29 @@ +run: + tests: false + +issues: + max-issues-per-linter: 0 + max-same-issues: 0 + +linters: + # please, do not use `enable-all`: it's deprecated and will be removed soon. + # inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint + disable-all: true + enable: + - depguard + - dogsled + - dupl + - gochecknoinits + - gocyclo + - gofmt + - goimports + - goprintffuncname + - govet + - interfacer + - misspell + - nolintlint + - scopelint + - typecheck + - unconvert + - unparam + - whitespace diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..721043b --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,47 @@ +env: + - GO111MODULE=on +before: + hooks: + - go mod download +builds: + - id: "upx" + env: + - CGO_ENABLED=0 + binary: upx + flags: + - -trimpath + goos: + - linux + - darwin + - windows + goarch: + - amd64 + - arm64 + - 386 + - arm + goarm: + - 6 + - 7 + +archives: + - id: default + builds: + - upx + format_overrides: + - goos: windows + format: zip + replacements: + windows: Windows + darwin: Darwin + 386: i386 + amd64: x86_64 +checksum: + name_template: "checksums.txt" +snapshot: + name_template: "{{ .Tag }}-next" +changelog: + sort: asc + filters: + exclude: + - "^docs:" + - "^test:" \ No newline at end of file diff --git a/Makefile b/Makefile index 0b9d5b9..50f69c8 100644 --- a/Makefile +++ b/Makefile @@ -14,23 +14,18 @@ test: go test -v . release: - rm -rf release - for OS in linux windows darwin; do \ - for ARCH in amd64 386; do \ - GOOS=$$OS GOARCH=$$ARCH go build -o release/upx-$$OS-$$ARCH-$(VER) .; \ - done \ - done - tar -zcf release/upx-$(VER).tar.gz release/* + goreleaser --rm-dist upload: release ./upx pwd - for OS in linux darwin; do \ - for ARCH in amd64 386; do \ - ./upx put release/upx-$$OS-$$ARCH-$(VER) /softwares/upx/; \ - done \ + ./upx put dist/upx_darwin_amd64/upx /softwares/upx/upx-darwin-amd64-$(VER); \ + + for ARCH in amd64 386 arm64 arm_6 arm_7; do \ + ./upx put dist/upx_linux_$$ARCH/upx /softwares/upx/upx-linux-$$ARCH-$(VER); \ done + for ARCH in amd64 386; do \ - ./upx put release/upx-windows-$$ARCH-$(VER) /softwares/upx/upx-windows-$$ARCH-$(VER).exe; \ + ./upx put dist/upx_windows_$$ARCH/upx.exe /softwares/upx/upx-windows-$$ARCH-$(VER).exe; \ done .PHONY: app test release upload diff --git a/db.go b/db.go index eb39151..0173931 100644 --- a/db.go +++ b/db.go @@ -2,12 +2,13 @@ package main import ( "encoding/json" - "github.com/syndtr/goleveldb/leveldb" "io/ioutil" "os" "path" "path/filepath" "runtime" + + "github.com/syndtr/goleveldb/leveldb" ) var db *leveldb.DB diff --git a/go.mod b/go.mod index 1478e1a..fbcdedb 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869 github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 github.com/syndtr/goleveldb v1.0.0 - github.com/upyun/go-sdk/v3 v3.0.0 + github.com/upyun/go-sdk/v3 v3.0.1 github.com/urfave/cli v1.22.4 golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 // indirect ) diff --git a/go.sum b/go.sum index 40e0610..fdb27b6 100644 --- a/go.sum +++ b/go.sum @@ -39,8 +39,8 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5I github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= -github.com/upyun/go-sdk/v3 v3.0.0 h1:AXmeuTWJp3oZUjXX/45RssJTndcxAbvGZqtsgKxuMIM= -github.com/upyun/go-sdk/v3 v3.0.0/go.mod h1:P/SnuuwhrIgAVRd/ZpzDWqCsBAf/oHg7UggbAxyZa0E= +github.com/upyun/go-sdk/v3 v3.0.1 h1:5F260VBi9bhrLkxdR/AyXayZQ9mGKkzrQ21t5F3/Jc4= +github.com/upyun/go-sdk/v3 v3.0.1/go.mod h1:P/SnuuwhrIgAVRd/ZpzDWqCsBAf/oHg7UggbAxyZa0E= github.com/urfave/cli v1.22.4 h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA= github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/match.go b/match.go index 1f5258d..70169da 100644 --- a/match.go +++ b/match.go @@ -1,9 +1,10 @@ package main import ( - "github.com/upyun/go-sdk/v3/upyun" "path/filepath" "time" + + "github.com/upyun/go-sdk/v3/upyun" ) const ( diff --git a/progress.go b/progress.go index fd01eba..ebd9e8b 100644 --- a/progress.go +++ b/progress.go @@ -1,8 +1,9 @@ package main import ( - "github.com/gosuri/uiprogress" "time" + + "github.com/gosuri/uiprogress" ) var progress *uiprogress.Progress diff --git a/session.go b/session.go index c301ab9..e04fc76 100644 --- a/session.go +++ b/session.go @@ -682,7 +682,6 @@ func (sess *Session) tree(upPath, prefix string, output chan string) (folders, f ObjectsChan: upInfos, }) wg.Wait() - return } diff --git a/upx.go b/upx.go index 6c41b3c..f91e55f 100644 --- a/upx.go +++ b/upx.go @@ -2,10 +2,11 @@ package main import ( "fmt" - "github.com/urfave/cli" "os" "runtime" "time" + + "github.com/urfave/cli" ) const VERSION = "v0.3.1" From bc739a62efc2495a32ee5b7091491a59cb73cbee Mon Sep 17 00:00:00 2001 From: "libo.huang" Date: Wed, 6 Jan 2021 15:26:34 +0800 Subject: [PATCH 2/2] rename --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 50f69c8..93e8777 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ifndef VER - VER= 'latest' + VER= latest endif APP= upx @@ -18,14 +18,14 @@ release: upload: release ./upx pwd - ./upx put dist/upx_darwin_amd64/upx /softwares/upx/upx-darwin-amd64-$(VER); \ + ./upx put dist/upx_darwin_amd64/upx /softwares/upx/upx_darwin_amd64_$(VER); \ for ARCH in amd64 386 arm64 arm_6 arm_7; do \ - ./upx put dist/upx_linux_$$ARCH/upx /softwares/upx/upx-linux-$$ARCH-$(VER); \ + ./upx put dist/upx_linux_$$ARCH/upx /softwares/upx/upx_linux_$$ARCH_$(VER); \ done for ARCH in amd64 386; do \ - ./upx put dist/upx_windows_$$ARCH/upx.exe /softwares/upx/upx-windows-$$ARCH-$(VER).exe; \ + ./upx put dist/upx_windows_$$ARCH/upx.exe /softwares/upx/upx_windows_$$ARCH_$(VER).exe; \ done .PHONY: app test release upload