Skip to content

Commit 1fa2ee8

Browse files
[GPT-95] Update go version, add tools for verification and testing (#718)
Fixes # https://gorilla-web-toolkit.atlassian.net/browse/GPT-95 **Summary of Changes** Added `.github/workflows/test.yml` that runs golangci-lint & go tests on any PR created or each push to main branch. --------- Signed-off-by: Corey Daley <[email protected]> Signed-off-by: Apoorva Jagtap <[email protected]> Co-authored-by: Corey Daley <[email protected]>
1 parent abccd7e commit 1fa2ee8

14 files changed

+280
-145
lines changed

.circleci/config.yml

-70
This file was deleted.

.editorconfig

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
; https://editorconfig.org/
2+
3+
root = true
4+
5+
[*]
6+
insert_final_newline = true
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
indent_style = space
10+
indent_size = 2
11+
12+
[{Makefile,go.mod,go.sum,*.go,.gitmodules}]
13+
indent_style = tab
14+
indent_size = 4
15+
16+
[*.md]
17+
indent_size = 4
18+
trim_trailing_whitespace = false
19+
20+
eclint_indent_style = unset

.github/workflows/issues.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Add issues or pull-requests created to the project.
2+
name: Add issue or pull request to Project
3+
4+
on:
5+
issues:
6+
types:
7+
- opened
8+
pull_request:
9+
types:
10+
- opened
11+
12+
jobs:
13+
add-to-project:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Add issue to project
17+
uses: actions/[email protected]
18+
with:
19+
project-url: https://github.com/orgs/gorilla/projects/4
20+
github-token: ${{ secrets.ADD_TO_PROJECT_TOKEN }}

.github/workflows/test.yml

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: CI
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
branches:
8+
- main
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
verify-and-test:
15+
strategy:
16+
matrix:
17+
go: ['1.19','1.20']
18+
os: [ubuntu-latest, macos-latest, windows-latest]
19+
fail-fast: true
20+
runs-on: ${{ matrix.os }}
21+
steps:
22+
- name: Checkout Code
23+
uses: actions/checkout@v3
24+
25+
- name: Setup Go ${{ matrix.go }}
26+
uses: actions/setup-go@v4
27+
with:
28+
go-version: ${{ matrix.go }}
29+
cache: false
30+
31+
- name: Run GolangCI-Lint
32+
uses: golangci/golangci-lint-action@v3
33+
with:
34+
version: v1.53
35+
args: --timeout=5m
36+
37+
- name: Run GoSec
38+
if: matrix.os == 'ubuntu-latest'
39+
uses: securego/gosec@master
40+
with:
41+
args: ./...
42+
43+
- name: Run GoVulnCheck
44+
uses: golang/govulncheck-action@v1
45+
with:
46+
go-version-input: ${{ matrix.go }}
47+
go-package: ./...
48+
49+
- name: Run Tests
50+
run: go test -race -cover -coverprofile=coverage -covermode=atomic -v ./...
51+
52+
- name: Upload coverage to Codecov
53+
uses: codecov/codecov-action@v3
54+
with:
55+
files: ./coverage

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
coverage.coverprofile

Makefile

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
GO_LINT=$(shell which golangci-lint 2> /dev/null || echo '')
2+
GO_LINT_URI=github.com/golangci/golangci-lint/cmd/golangci-lint@latest
3+
4+
GO_SEC=$(shell which gosec 2> /dev/null || echo '')
5+
GO_SEC_URI=github.com/securego/gosec/v2/cmd/gosec@latest
6+
7+
GO_VULNCHECK=$(shell which govulncheck 2> /dev/null || echo '')
8+
GO_VULNCHECK_URI=golang.org/x/vuln/cmd/govulncheck@latest
9+
10+
.PHONY: golangci-lint
11+
golangci-lint:
12+
$(if $(GO_LINT), ,go install $(GO_LINT_URI))
13+
@echo "##### Running golangci-lint"
14+
golangci-lint run -v
15+
16+
.PHONY: gosec
17+
gosec:
18+
$(if $(GO_SEC), ,go install $(GO_SEC_URI))
19+
@echo "##### Running gosec"
20+
gosec ./...
21+
22+
.PHONY: govulncheck
23+
govulncheck:
24+
$(if $(GO_VULNCHECK), ,go install $(GO_VULNCHECK_URI))
25+
@echo "##### Running govulncheck"
26+
govulncheck ./...
27+
28+
.PHONY: verify
29+
verify: golangci-lint gosec govulncheck
30+
31+
.PHONY: test
32+
test:
33+
@echo "##### Running tests"
34+
go test -race -cover -coverprofile=coverage.coverprofile -covermode=atomic -v ./...

README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# gorilla/mux
22

3-
[![GoDoc](https://godoc.org/github.com/gorilla/mux?status.svg)](https://godoc.org/github.com/gorilla/mux)
4-
[![CircleCI](https://circleci.com/gh/gorilla/mux.svg?style=svg)](https://circleci.com/gh/gorilla/mux)
5-
[![Sourcegraph](https://sourcegraph.com/github.com/gorilla/mux/-/badge.svg)](https://sourcegraph.com/github.com/gorilla/mux?badge)
3+
![testing](https://github.com/gorilla/mux/actions/workflows/test.yml/badge.svg)
4+
[![codecov](https://codecov.io/github/gorilla/mux/branch/main/graph/badge.svg)](https://codecov.io/github/gorilla/mux)
5+
[![godoc](https://godoc.org/github.com/gorilla/mux?status.svg)](https://godoc.org/github.com/gorilla/mux)
6+
[![sourcegraph](https://sourcegraph.com/github.com/gorilla/mux/-/badge.svg)](https://sourcegraph.com/github.com/gorilla/mux?badge)
7+
68

79
![Gorilla Logo](https://cloud-cdn.questionable.services/gorilla-icon-64.png)
810

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module github.com/gorilla/mux
22

3-
go 1.12
3+
go 1.19

0 commit comments

Comments
 (0)