mirror of https://github.com/thegeeklab/drone-yaml
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
458 lines
8.6 KiB
458 lines
8.6 KiB
--- |
|
kind: pipeline |
|
name: test |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
steps: |
|
- name: deps |
|
image: golang:1.19 |
|
commands: |
|
- make deps |
|
volumes: |
|
- name: godeps |
|
path: /go |
|
|
|
- name: lint |
|
image: golang:1.19 |
|
commands: |
|
- make lint |
|
volumes: |
|
- name: godeps |
|
path: /go |
|
|
|
- name: test |
|
image: golang:1.19 |
|
commands: |
|
- make test |
|
volumes: |
|
- name: godeps |
|
path: /go |
|
|
|
volumes: |
|
- name: godeps |
|
temp: {} |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
- refs/pull/** |
|
|
|
--- |
|
kind: pipeline |
|
name: build-binaries |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
steps: |
|
- name: build |
|
image: techknowlogick/xgo:go-1.19.x |
|
commands: |
|
- make release |
|
|
|
- name: executable |
|
image: alpine |
|
commands: |
|
- $(find dist/ -executable -type f -iname ${DRONE_REPO_NAME}-linux-amd64) --help |
|
|
|
- name: changelog-generate |
|
image: thegeeklab/git-chglog |
|
commands: |
|
- git fetch -tq |
|
- git-chglog --no-color --no-emoji -o CHANGELOG.md ${DRONE_TAG:---next-tag unreleased unreleased} |
|
|
|
- name: changelog-format |
|
image: thegeeklab/alpine-tools |
|
commands: |
|
- prettier CHANGELOG.md |
|
- prettier -w CHANGELOG.md |
|
|
|
- name: publish |
|
image: plugins/github-release |
|
settings: |
|
api_key: |
|
from_secret: github_token |
|
files: |
|
- dist/* |
|
note: CHANGELOG.md |
|
overwrite: true |
|
title: ${DRONE_TAG} |
|
when: |
|
ref: |
|
- refs/tags/** |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
- refs/pull/** |
|
|
|
depends_on: |
|
- test |
|
|
|
--- |
|
kind: pipeline |
|
name: build-container-amd64 |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
steps: |
|
- name: build |
|
image: golang:1.19 |
|
commands: |
|
- make build |
|
|
|
- name: dryrun |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
dockerfile: docker/Dockerfile.amd64 |
|
dry_run: true |
|
repo: thegeeklab/${DRONE_REPO_NAME} |
|
when: |
|
ref: |
|
- refs/pull/** |
|
depends_on: |
|
- build |
|
|
|
- name: publish-dockerhub |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: amd64 |
|
dockerfile: docker/Dockerfile.amd64 |
|
password: |
|
from_secret: docker_password |
|
repo: thegeeklab/${DRONE_REPO_NAME} |
|
username: |
|
from_secret: docker_username |
|
when: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
depends_on: |
|
- dryrun |
|
|
|
- name: publish-quay |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: amd64 |
|
dockerfile: docker/Dockerfile.amd64 |
|
password: |
|
from_secret: quay_password |
|
registry: quay.io |
|
repo: quay.io/thegeeklab/${DRONE_REPO_NAME} |
|
username: |
|
from_secret: quay_username |
|
when: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
depends_on: |
|
- dryrun |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
- refs/pull/** |
|
|
|
depends_on: |
|
- test |
|
|
|
--- |
|
kind: pipeline |
|
name: build-container-arm64 |
|
|
|
platform: |
|
os: linux |
|
arch: arm64 |
|
|
|
steps: |
|
- name: build |
|
image: golang:1.19 |
|
commands: |
|
- make build |
|
|
|
- name: dryrun |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
dockerfile: docker/Dockerfile.arm64 |
|
dry_run: true |
|
repo: thegeeklab/${DRONE_REPO_NAME} |
|
when: |
|
ref: |
|
- refs/pull/** |
|
depends_on: |
|
- build |
|
|
|
- name: publish-dockerhub |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: arm64 |
|
dockerfile: docker/Dockerfile.arm64 |
|
password: |
|
from_secret: docker_password |
|
repo: thegeeklab/${DRONE_REPO_NAME} |
|
username: |
|
from_secret: docker_username |
|
when: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
depends_on: |
|
- dryrun |
|
|
|
- name: publish-quay |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: arm64 |
|
dockerfile: docker/Dockerfile.arm64 |
|
password: |
|
from_secret: quay_password |
|
registry: quay.io |
|
repo: quay.io/thegeeklab/${DRONE_REPO_NAME} |
|
username: |
|
from_secret: quay_username |
|
when: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
depends_on: |
|
- dryrun |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
- refs/pull/** |
|
|
|
depends_on: |
|
- test |
|
|
|
--- |
|
kind: pipeline |
|
name: build-container-arm |
|
|
|
platform: |
|
os: linux |
|
arch: arm |
|
|
|
steps: |
|
- name: build |
|
image: golang:1.19 |
|
commands: |
|
- make build |
|
|
|
- name: dryrun |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
dockerfile: docker/Dockerfile.arm |
|
dry_run: true |
|
repo: thegeeklab/${DRONE_REPO_NAME} |
|
when: |
|
ref: |
|
- refs/pull/** |
|
depends_on: |
|
- build |
|
|
|
- name: publish-dockerhub |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: arm |
|
dockerfile: docker/Dockerfile.arm |
|
password: |
|
from_secret: docker_password |
|
repo: thegeeklab/${DRONE_REPO_NAME} |
|
username: |
|
from_secret: docker_username |
|
when: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
depends_on: |
|
- dryrun |
|
|
|
- name: publish-quay |
|
image: thegeeklab/drone-docker:19 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: arm |
|
dockerfile: docker/Dockerfile.arm |
|
password: |
|
from_secret: quay_password |
|
registry: quay.io |
|
repo: quay.io/thegeeklab/${DRONE_REPO_NAME} |
|
username: |
|
from_secret: quay_username |
|
when: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
depends_on: |
|
- dryrun |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
- refs/pull/** |
|
|
|
depends_on: |
|
- test |
|
|
|
--- |
|
kind: pipeline |
|
name: docs |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
concurrency: |
|
limit: 1 |
|
|
|
steps: |
|
- name: markdownlint |
|
image: thegeeklab/markdownlint-cli |
|
commands: |
|
- markdownlint 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md' |
|
|
|
- name: spellcheck |
|
image: thegeeklab/alpine-tools |
|
commands: |
|
- spellchecker --files '_docs/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls --no-suggestions |
|
environment: |
|
FORCE_COLOR: true |
|
NPM_CONFIG_LOGLEVEL: error |
|
|
|
- name: publish |
|
image: plugins/gh-pages |
|
settings: |
|
pages_directory: _docs/ |
|
password: |
|
from_secret: github_token |
|
target_branch: docs |
|
username: |
|
from_secret: github_username |
|
when: |
|
ref: |
|
- refs/heads/main |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
- refs/pull/** |
|
|
|
depends_on: |
|
- build-binaries |
|
- build-container-amd64 |
|
- build-container-arm64 |
|
- build-container-arm |
|
|
|
--- |
|
kind: pipeline |
|
name: notifications |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
steps: |
|
- name: manifest-dockerhub |
|
image: plugins/manifest |
|
settings: |
|
auto_tag: true |
|
ignore_missing: true |
|
password: |
|
from_secret: docker_password |
|
spec: docker/manifest.tmpl |
|
username: |
|
from_secret: docker_username |
|
when: |
|
status: |
|
- success |
|
|
|
- name: manifest-quay |
|
image: plugins/manifest |
|
settings: |
|
auto_tag: true |
|
ignore_missing: true |
|
password: |
|
from_secret: quay_password |
|
spec: docker/manifest-quay.tmpl |
|
username: |
|
from_secret: quay_username |
|
when: |
|
status: |
|
- success |
|
|
|
- name: pushrm-dockerhub |
|
image: chko/docker-pushrm:1 |
|
environment: |
|
DOCKER_PASS: |
|
from_secret: docker_password |
|
DOCKER_USER: |
|
from_secret: docker_username |
|
PUSHRM_FILE: README.md |
|
PUSHRM_SHORT: Custom Drone YAML formatter |
|
PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME} |
|
when: |
|
status: |
|
- success |
|
|
|
- name: pushrm-quay |
|
image: chko/docker-pushrm:1 |
|
environment: |
|
APIKEY__QUAY_IO: |
|
from_secret: quay_token |
|
PUSHRM_FILE: README.md |
|
PUSHRM_TARGET: quay.io/thegeeklab/${DRONE_REPO_NAME} |
|
when: |
|
status: |
|
- success |
|
|
|
- name: matrix |
|
image: thegeeklab/drone-matrix |
|
settings: |
|
homeserver: |
|
from_secret: matrix_homeserver |
|
password: |
|
from_secret: matrix_password |
|
roomid: |
|
from_secret: matrix_roomid |
|
template: "Status: **{{ build.Status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.Link }}){{#if build.Branch}} ({{ build.Branch }}){{/if}} by {{ commit.Author }}<br/> Message: {{ commit.Message.Title }}" |
|
username: |
|
from_secret: matrix_username |
|
when: |
|
status: |
|
- success |
|
- failure |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/main |
|
- refs/tags/** |
|
status: |
|
- success |
|
- failure |
|
|
|
depends_on: |
|
- docs |
|
|
|
--- |
|
kind: signature |
|
hmac: c6bc4fac170e14b5315506b6f5dbe79f8030a53272cf6ecf0d837d4bd830e864 |
|
|
|
...
|
|
|