diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml new file mode 100644 index 0000000..1d58c31 --- /dev/null +++ b/.github/workflows/golangci-lint.yml @@ -0,0 +1,57 @@ +name: golangci-lint + +env: + # go needs absolute directories, using the $HOME variable doesn't work here. + GOCACHE: /home/runner/work/go/pkg/build + GOPATH: /home/runner/work/go + GO_VERSION: '^1.18.2' + +on: + push: + tags: + - v* + branches: + - "*" + pull_request: + branches: + - "*" + +jobs: + golangci: + name: lint + runs-on: ubuntu-latest + steps: + - name: setup go ${{ env.GO_VERSION }} + uses: actions/setup-go@v2 + with: + go-version: '${{ env.GO_VERSION }}' + + - name: checkout source + uses: actions/checkout@v2 + + - name: compile code + run: go install -v ./... + + - name: golangci-lint + uses: golangci/golangci-lint-action@v2 + with: + # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version + version: latest + + # Optional: working directory, useful for monorepos + # working-directory: somedir + + # Optional: golangci-lint command line arguments. + # args: --issues-exit-code=0 + + # Optional: show only new issues if it's a pull request. The default value is `false`. + # only-new-issues: true + + # Optional: if set to true then the action will use pre-installed Go. + skip-go-installation: true + + # Optional: if set to true then the action don't cache or restore ~/go/pkg. + # skip-pkg-cache: true + + # Optional: if set to true then the action don't cache or restore ~/.cache/go-build. + # skip-build-cache: true diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f46ccb6..8113501 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,7 +1,16 @@ name: CI on: + workflow_dispatch: + inputs: + note: + description: 'Note' + required: false + default: '' push: + tags: + - '*' + branches: - "master" pull_request: @@ -16,34 +25,33 @@ env: # go needs absolute directories, using the $HOME variable doesn't work here. GOCACHE: /home/runner/work/go/pkg/build GOPATH: /home/runner/work/go - GO111MODULE: on - GO_VERSION: '^1.17.0' + GO_VERSION: '^1.18.2' jobs: ######################## # Format, compileation and lint check ######################## - lint-check: - name: Format, compilation and lint check + golangci: + name: lint runs-on: ubuntu-latest steps: - - name: git checkout - uses: actions/checkout@v2 - - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: '${{ env.GO_VERSION }}' - - name: run format - run: make fmt + - name: checkout source + uses: actions/checkout@v2 - name: compile code run: go install -v ./... - - name: run lint - run: make lint + - name: golangci-lint + uses: golangci/golangci-lint-action@v2 + with: + version: latest + skip-go-installation: true ######################## # run unit tests @@ -66,12 +74,12 @@ jobs: uses: actions/cache@v1 with: path: /home/runner/work/go - key: btcwallet-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} + key: lbcwallet-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} restore-keys: | - btcwallet-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} - btcwallet-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- - btcwallet-${{ runner.os }}-go-${{ env.GO_VERSION }}- - btcwallet-${{ runner.os }}-go- + lbcwallet-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}-${{ hashFiles('**/go.sum') }} + lbcwallet-${{ runner.os }}-go-${{ env.GO_VERSION }}-${{ github.job }}- + lbcwallet-${{ runner.os }}-go-${{ env.GO_VERSION }}- + lbcwallet-${{ runner.os }}-go- - name: setup go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..be48165 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,57 @@ +name: goreleaser + +on: + workflow_dispatch: + inputs: + note: + description: 'Note' + required: false + default: '' + pull_request: + push: + tags: + - '*' + +permissions: + contents: write + +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 + with: + go-version: 1.18.2 + + # Login against a Docker registry except on PR + # https://github.com/docker/login-action + - name: Log into registry docker.io + if: github.event_name != 'pull_request' + uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + - + name: Run GoReleaser + uses: goreleaser/goreleaser-action@v2 + with: + distribution: goreleaser + version: latest + args: release --rm-dist + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - + name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: lbcwallet-${{ github.sha }} + path: | + dist/checksums.txt + dist/*.tar.gz