MEDIUM: add new server/bind options #277
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
jobs: | |
check: | |
if: ${{ github.event_name == 'pull_request' }} | |
name: HAProxy check commit message | |
runs-on: ubuntu-latest | |
steps: | |
- name: commit-check | |
uses: docker://ghcr.io/haproxytech/commit-check:3.0.0 | |
env: | |
API_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
generate: | |
name: checking generated files | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version-file: 'go.mod' | |
- name: Generating the files | |
run: | | |
make generate | |
git diff | |
test -z "$(git diff 2> /dev/null)" || exit 'Files are not generated or formatted with gofumpt, issue `make generate` and commit the result' | |
test -z "$(git ls-files --others --exclude-standard 2> /dev/null)" || exit 'Generation created untracked files, cannot proceed' | |
lint: | |
name: golangci-lint | |
needs: ["generate"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version-file: 'go.mod' | |
- uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Lint | |
run: | | |
make lint | |
license: | |
name: license-check | |
needs: ["generate"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version-file: 'go.mod' | |
- uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: go-licenses install | |
run: go install github.com/google/go-licenses@latest | |
- name: Lint | |
run: | | |
PROJECT="$(go list -m)" | |
ALLOWED_LICENSES="$(<.allowed_license_types)" | |
go-licenses report --ignore "$PROJECT" . | |
go-licenses check --allowed_licenses="$ALLOWED_LICENSES" --ignore "$PROJECT" . | |
tidy: | |
name: go mod tidy | |
needs: ["generate"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version-file: 'go.mod' | |
- name: tidy | |
run: go mod tidy | |
- name: changes | |
run: test -z "$(git diff 2> /dev/null)" || exit "Go modules not tidied, issue \`go mod tidy\` and commit the result" | |
go_build_test: | |
name: test | |
needs: ["lint","tidy"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version-file: 'go.mod' | |
id: go | |
- name: Get dependencies | |
run: | | |
go get -v -t -d ./... | |
- name: Build | |
run: | | |
go build -v . | |
- name: Test | |
run: | | |
go test ./... |