pcmt/.drone.yml
leo ef6ef17715
All checks were successful
continuous-integration/drone/push Build is passing
feat: don't compare pcmt.css in ci
* unstage pcmt.css, needs to be built separately
* generate the stylesheet in ci and build the app with that
* add better instructions to readme on how to build the app
* add more justfile targets for convenience
2023-05-30 20:43:19 +02:00

261 lines
5.3 KiB
YAML

---
# Copyright 2023 wanderer <a_mirre at utb dot cz>
# SPDX-License-Identifier: AGPL-3.0-only
kind: pipeline
type: docker
name: test archlinux
platform:
os: linux
arch: amd64
node:
r: as
trigger:
branch: [development, "feature-**"]
event: push
environment:
CGO_ENABLED: 0
GOPATH: /go
steps:
- name: pull
image: docker.io/immawanderer/archlinux-go:linux-amd64
pull: always
depends_on: [clone]
commands:
- go version
- name: go mod tidy
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [pull]
volumes:
- name: gopath
path: /go
commands:
- go mod tidy
- git diff-index HEAD :^package-lock.json
# run Go mod tidy prior to committing
- test -z "$(git diff-index HEAD :^package-lock.json)"
- name: go build
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [go mod tidy]
volumes:
- name: gopath
path: /go
commands:
- pacman -Sy && pacman -S --noconfirm --needed npm
# generate frontend assets
- go generate -v .
- go build -v .
- name: go test
image: docker.io/immawanderer/archlinux-go:linux-amd64
depends_on: [pull]
volumes:
- name: gopath
path: /go
commands:
- go test -cover ./...
volumes:
- name: gopath
temp: {}
---
kind: pipeline
type: docker
name: test alpine
platform:
os: linux
arch: amd64
node:
r: as
trigger:
branch: [development, "feature-**"]
event: push
environment:
CGO_ENABLED: 0
steps:
- name: pull
image: docker.io/library/golang:1.20.4-alpine3.17
depends_on: [clone]
commands:
- go version
- name: go mod tidy
image: docker.io/library/golang:1.20.4-alpine3.17
depends_on: [pull]
volumes:
- name: gopath
path: /go
commands:
- go mod tidy
- apk update -q && apk add -q --no-cache git
- git diff-index HEAD :^package-lock.json
# run Go mod tidy prior to committing
- test -z "$(git diff-index HEAD :^package-lock.json)"
- name: go build
image: docker.io/library/golang:1.20.4-alpine3.17
depends_on: [go mod tidy]
volumes:
- name: gopath
path: /go
commands:
- apk update -q && apk add -q --no-cache npm
# generate frontend assets
- go generate -v .
- go build -v .
- name: go test
image: docker.io/library/golang:1.20.4-alpine3.17
depends_on: [pull]
volumes:
- name: gopath
path: /go
commands:
- go test -cover ./...
volumes:
- name: gopath
temp: {}
---
kind: pipeline
type: docker
name: golangci-lint|godocs
platform:
os: linux
arch: amd64
node:
r: as
steps:
- name: golangci-lint
image: docker.io/library/golang:1.20.4-alpine3.17
pull: always
environment:
CGO_ENABLED: 0
commands:
- go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@v1.52.2
- golangci-lint version
- golangci-lint run -v --timeout 5m
- name: goreportcard refresh
image: docker.io/curlimages/curl:8.00.1
depends_on: [golangci-lint]
pull: if-not-exists
trigger:
ref:
include:
- "refs/tags/**"
- refs/heads/development
exclude:
- "refs/pull/**"
commands:
- uname -r
- curl --version
- curl -sS -X POST -F \"repo=git.dotya.ml/${DRONE_REPO}\" https://goreportcard.com/checks -o /dev/null
- name: godocs refresh
image: docker.io/curlimages/curl:8.00.1
pull: if-not-exists
depends_on: [golangci-lint]
trigger:
ref:
include:
- "refs/tags/**"
- refs/heads/development
exclude: ["refs/pull/**"]
commands:
- uname -r
- curl --version
- curl -sS -X POST https://godocs.io/git.dotya.ml/${DRONE_REPO}/refresh -o /dev/null
---
kind: pipeline
type: docker
name: container
platform:
os: linux
arch: amd64
node:
r: as
trigger:
event: [push, pull_request, cron, tag]
steps:
- name: hadolint
pull: always
image: ghcr.io/hadolint/hadolint:v2.12.0-alpine
commands:
- hadolint --version
- hadolint Containerfile
when:
ref:
- refs/heads/development
- "refs/heads/feature-**"
- "refs/pull/**"
- "refs/tags/**"
event:
exclude: [cron]
- name: kaniko-build
pull: always
image: docker.io/immawanderer/drone-kaniko:linux-amd64
settings:
dockerfile: Containerfile
context: .
args:
- BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
- VCS_REF=${DRONE_COMMIT_SHA:0:8}
when:
ref:
- "refs/heads/feature-**"
- "refs/pull/**"
event:
exclude: [cron]
- name: kaniko publish
pull: always
image: docker.io/immawanderer/drone-kaniko:linux-amd64
settings:
dockerfile: Containerfile
context: .
args:
- BUILD_DATE="$(date -u +"%Y-%m-%dT%H:%M:%SZ")"
- VCS_REF=${DRONE_COMMIT_SHA:0:8}
tags:
- latest
- linux-amd64
- ${DRONE_COMMIT_SHA:0:8}
- ${DRONE_TAG}
- ${DRONE_TAG}-linux-amd64
- ${DRONE_TAG}-g${DRONE_COMMIT_SHA:0:8}
repo: immawanderer/mt-${DRONE_REPO_NAME}
username: immawanderer
password:
from_secret: dh_token
when:
ref:
include:
- "refs/tags/**"
...