diff --git a/.github/workflows/test-and-build.yml b/.github/workflows/test-and-build.yml new file mode 100644 index 0000000..18fb87e --- /dev/null +++ b/.github/workflows/test-and-build.yml @@ -0,0 +1,50 @@ +--- + +name: test-and-build +on: + push: + branches: ['*'] + tags: ['v*'] + +jobs: + test-and-build: + defaults: + run: + shell: bash + + container: + image: luzifer/archlinux + env: + CGO_ENABLED: 0 + GOPATH: /go + + runs-on: ubuntu-latest + + steps: + - name: Enable custom AUR package repo + run: echo -e "[luzifer]\nSigLevel = Never\nServer = https://archrepo.hub.luzifer.io/\$arch" >>/etc/pacman.conf + + - name: Install required packages + run: | + pacman -Syy --noconfirm \ + git \ + go \ + golangci-lint-bin \ + make \ + trivy + + - uses: actions/checkout@v3 + + - name: Marking workdir safe + run: git config --global --add safe.directory /__w/go-openssl/go-openssl + + - name: Lint and test code + run: make lint test + + - name: Record benchmark + run: make benchmark + + - name: Execute Trivy scan + run: make trivy + +... diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cf3e1cb..0000000 --- a/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -dist: bionic -language: go - -go: - - 1.13.x - - 1.14.x - - tip - -script: - - go vet - - go test -v -bench . -cover diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a208c8b --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +default: + +benchmark: + go test -bench=. ./... + +lint: + golangci-lint run ./... + +test: + go test -cover -v ./... + +# -- Vulnerability scanning -- + +trivy: + trivy fs . \ + --dependency-tree \ + --exit-code 1 \ + --format table \ + --ignore-unfixed \ + --quiet \ + --scanners config,license,secret,vuln \ + --severity HIGH,CRITICAL \ + --skip-dirs docs