goshorly/.drone.yml

166 lines
No EOL
3.4 KiB
YAML

---
kind: pipeline
name: check
workspace:
base: /go
path: src/git.hackmi.ch/Phil/goshorly
steps:
- name: check-format
image: golang
commands:
- go fmt $(go list ./... | grep -v /vendor/)
- go vet $(go list ./... | grep -v /vendor/)
- go test -race $(go list ./... | grep -v /vendor/)
- name: check-sec
image: golang
commands:
- go install github.com/securego/gosec/v2/cmd/gosec@latest
- go get -v -d .
- gosec ./...
---
kind: pipeline
name: Build-untagged
steps:
- name: Build Binary for Testing (linux/amd64)
image: golang
commands:
- go get -v -d ./...
- go build -a -installsuffix cgo
-o linux-amd64
.
- name: Build-latest-tag-docker
image: docker:dind
volumes:
- name: dockersock
path: /var/run
environment:
DOCKER_PASSWORD:
from_secret: DOCKER_PASSWORD
commands:
- docker ps -a
- docker context create build
- docker buildx create build --use
- echo $DOCKER_PASSWORD | docker login --username Phil --password-stdin git.hackmi.ch
- docker buildx build
--platform linux/amd64
--no-cache
--build-arg CI_COMMIT_BRANCH=$DRONE_COMMIT_BRANCH
--build-arg CI_COMMIT_SHORT_SHA=$DRONE_COMMIT_SHA
--push
--tag git.hackmi.ch/phil/goshorly:latest
.
services:
- name: docker
image: docker:dind
privileged: true
volumes:
- name: dockersock
path: /var/run
volumes:
- name: dockersock
temp: {}
depends_on:
- check
when:
branch:
- main
---
kind: pipeline
name: Build-tagged-release
steps:
- name: Build linux/amd64 (prod)
image: golang
environment:
GOOS: "linux"
GOARCH: "amd64"
CGO_ENABLED: 0
commands:
- go get -v -d ./...
- go build -a -installsuffix cgo
-ldflags="-X $I_PACKAGE.CI_COMMIT_SHORT_SHA=$DRONE_COMMIT_SHA
-X $I_PACKAGE.CI_COMMIT_BRANCH=$DRONE_COMMIT_BRANCH
-X $I_PACKAGE.CI_COMMIT_TAG=$DRONE_TAG"
-o linux-amd64
.
- name: Build windows/amd64 (prod)
image: golang
environment:
GOOS: "windows"
GOARCH: "amd64"
CGO_ENABLED: 0
commands:
- go get -v -d ./...
- go build -a -installsuffix cgo
-ldflags="-X $I_PACKAGE.CI_COMMIT_SHORT_SHA=$DRONE_COMMIT_SHA
-X $I_PACKAGE.CI_COMMIT_BRANCH=$DRONE_COMMIT_BRANCH
-X $I_PACKAGE.CI_COMMIT_TAG=$DRONE_TAG"
-o windows-amd64.exe
.
- name: Build-latest-tag-docker
image: docker:dind
volumes:
- name: dockersock
path: /var/run
environment:
DOCKER_PASSWORD:
from_secret: DOCKER_PASSWORD
commands:
- sleep 30
- docker ps -a
- docker context create build
- docker buildx create build --use
- echo $DOCKER_PASSWORD | docker login --username Phil --password-stdin git.hackmi.ch
- docker buildx build
--platform linux/amd64
--no-cache
--build-arg CI_COMMIT_BRANCH=$DRONE_COMMIT_BRANCH
--build-arg CI_COMMIT_SHORT_SHA=$DRONE_COMMIT_SHA
--build-arg CI_COMMIT_TAG=$DRONE_TAG
--push
--tag git.hackmi.ch/phil/goshorly:$DRONE_TAG
.
- name: Release Binary (Git)
image: plugins/gitea-release
settings:
api_key:
from_secret: DOCKER_PASSWORD
base_url: https://git.hackmi.ch
files:
- linux-amd64
- windows-amd64.exe
checksum: md5
services:
- name: docker
image: docker:dind
privileged: true
volumes:
- name: dockersock
path: /var/run
volumes:
- name: dockersock
temp: {}
depends_on:
- check
trigger:
event:
- tag