gagent/.drone.yml

53 lines
1.7 KiB
YAML
Raw Normal View History

---
kind: pipeline
type: docker
name: validation
platform:
2021-03-31 06:17:43 +00:00
arch: amd64
clone:
depth: 1
volumes:
- name: dockersock
host:
path: /run/docker.sock
steps:
2021-05-22 06:10:35 -07:00
- name: Validate code base
2021-05-21 19:28:23 -07:00
# image: golang:1.16-alpine3.13
image: golang:1.16.4
environment:
TRIVY_QUIET: true
TRIVY_LIGHT: true
TRIVY_FORMAT: table
TRIVY_IGNORE_UNFIXED: true
TRIVY_NO_PROGRESS: true
commands:
2021-05-22 06:10:35 -07:00
### Populate temporary container with tools / files we will need for building and testing
2021-05-21 19:28:23 -07:00
# - apk add --no-cache zeromq-dev build-base git
2021-05-22 06:10:35 -07:00
# - curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.18.2
### Format the go code. Go does not care about it, but it helps to ensure everything is formated the same.
- go fmt ./...
2021-05-22 06:10:35 -07:00
### Perform a basic lint of the code, we do this after formatting, just in case there are edge cases with the formatting.
- go vet ./...
2021-05-22 06:10:35 -07:00
### Run a security check and warn us about lower level vulnerabilities
- trivy fs --exit-code 0 --severity UNKNOWN,LOW,MEDIUM .
2021-05-22 06:10:35 -07:00
### Re-run the scan, but this time looking for higher level vulnerabilities that we want to block for.
- trivy fs --skip-update --exit-code 1 --severity CRITICAL,HIGH .
2021-05-22 06:10:35 -07:00
### Perform unit tests
# - @TODO I really don't know how to do unit tests. Will need to figure this out eventually.
2021-05-22 06:10:35 -07:00
- name: Send Status To Datadog
image: masci/drone-datadog
settings:
api_key:
from_secret: Datadog
events:
- title: "Build failure on amd64"
text: "Build ${DRONE_BUILD_NUMBER}"
alert_type: "error"
when:
status:
- failure