--- 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