Merge pull request #431 from unpoller/goreleaser-support

goreleaser & testing with github actions
This commit is contained in:
Cody Lee 2022-11-05 08:36:34 -05:00 committed by GitHub
commit 3065cafce8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 105 additions and 9 deletions

58
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,58 @@
name: Build
on: [push]
permissions:
contents: read
# Optional: allow read access to pull request. Use with `only-new-issues` option.
# pull-requests: read
jobs:
test:
strategy:
matrix:
go: [1.19]
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go }}
- name: Build
run: go build -v ./...
- name: Test
run: go test -v ./...
lint:
strategy:
matrix:
go: [1.19]
os: [ubuntu-latest, macos-latest, windows-latest]
name: lint
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go }}
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
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.50.1
# Optional: working directory, useful for monorepos
# working-directory: somedir
# Optional: golangci-lint command line arguments.
# args: --issues-exit-code=0
args: --timeout=3m
# we have installed go already
skip-go-installation: true
# Optional: show only new issues if it's a pull request. The default value is `false`.
# only-new-issues: true

38
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,38 @@
name: Release
on:
push:
# run only against tags
tags:
- '*'
permissions:
contents: write
packages: write
# issues: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: git fetch --force --tags
- uses: actions/setup-go@v3
with:
go-version: '>=1.19.3'
cache: true
# More assembly might be required: Docker logins, GPG, etc. It all depends
# on your needs.
- uses: goreleaser/goreleaser-action@v2
with:
# either 'goreleaser' (default) or 'goreleaser-pro':
distribution: goreleaser-pro
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Your GoReleaser Pro key, if you are using the 'goreleaser-pro'
# distribution:
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}

View File

@ -4,12 +4,12 @@ jobs:
- os: osx - os: osx
osx_image: xcode12 osx_image: xcode12
language: go language: go
go: 1.16.x go: 1.19.x
- os: linux - os: linux
dist: bionic dist: focal
services: docker services: docker
language: go language: go
go: 1.16.x go: 1.19.x
git: git:
depth: false depth: false
addons: addons:

View File

@ -352,14 +352,14 @@ $(patsubst %,%.darwin.so,$(PLUGINS)):
GOOS=darwin go build -o $@ -ldflags "$(VERSION_LDFLAGS)" -buildmode=plugin ./plugins/$(patsubst %.darwin.so,%,$@) GOOS=darwin go build -o $@ -ldflags "$(VERSION_LDFLAGS)" -buildmode=plugin ./plugins/$(patsubst %.darwin.so,%,$@)
# Run code tests and lint. # Run code tests and lint.
test: lint test: # lint
# Testing. # Testing.
go test -race -covermode=atomic ./... go test -race -covermode=atomic ./...
lint: #lint:
# Checking lint. # # Checking lint.
GOOS=linux $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) # GOOS=linux $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS)
GOOS=freebsd $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) # GOOS=freebsd $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS)
GOOS=windows $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) # GOOS=windows $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS)
# Mockgen and bindata are examples. # Mockgen and bindata are examples.
# Your `go generate` may require other tools; add them! # Your `go generate` may require other tools; add them!