144 lines
2.2 KiB
Text
144 lines
2.2 KiB
Text
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
local testing(version, arch) = {
|
|
kind: 'pipeline',
|
|
type: 'docker',
|
|
name: version + '-' + arch,
|
|
platform: {
|
|
arch: arch,
|
|
},
|
|
steps: [
|
|
{
|
|
name: 'lint',
|
|
image: 'rancher/drone-golangci-lint:latest',
|
|
},
|
|
{
|
|
name: 'cache',
|
|
image: 'golang:' + version,
|
|
commands: [
|
|
'go mod tidy'
|
|
],
|
|
depends_on: [
|
|
'lint',
|
|
],
|
|
volumes: [
|
|
{
|
|
name: 'cache',
|
|
path: '/go',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'test',
|
|
image: 'golang:' + version,
|
|
commands: [
|
|
'make test-ci',
|
|
],
|
|
depends_on: [
|
|
'cache',
|
|
],
|
|
volumes: [
|
|
{
|
|
name: 'cache',
|
|
path: '/go',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'fuzz',
|
|
image: 'golang:' + version,
|
|
commands: [
|
|
'make fuzz-ci',
|
|
],
|
|
depends_on: [
|
|
'cache',
|
|
],
|
|
volumes: [
|
|
{
|
|
name: 'cache',
|
|
path: '/go',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
trigger: {
|
|
event: {
|
|
exclude: [
|
|
'tag',
|
|
],
|
|
},
|
|
},
|
|
volumes: [
|
|
{
|
|
name: 'cache',
|
|
temp: {},
|
|
},
|
|
],
|
|
};
|
|
|
|
// "Inspired by" https://goreleaser.com/ci/drone/
|
|
local release() = {
|
|
kind: 'pipeline',
|
|
type: 'docker',
|
|
name: 'release',
|
|
trigger: {
|
|
event: [
|
|
'tag',
|
|
],
|
|
},
|
|
steps: [
|
|
{
|
|
name: 'fetch',
|
|
image: 'alpine/git',
|
|
commands: [
|
|
'git fetch --tags',
|
|
],
|
|
},
|
|
{
|
|
name: 'test',
|
|
image: 'golang',
|
|
commands: [
|
|
'make test-ci',
|
|
],
|
|
volumes: [
|
|
{
|
|
name: 'cache',
|
|
path: '/go',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'release',
|
|
image: 'goreleaser/goreleaser',
|
|
environment: {
|
|
GITEA_TOKEN: {
|
|
from_secret: 'GITEA_TOKEN',
|
|
},
|
|
},
|
|
commands: [
|
|
'goreleaser release',
|
|
],
|
|
volumes: [
|
|
{
|
|
name: 'cache',
|
|
path: '/go',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
volumes: [
|
|
{
|
|
name: 'cache',
|
|
temp: {},
|
|
},
|
|
],
|
|
};
|
|
|
|
[
|
|
testing('1.19', 'amd64'),
|
|
testing('1.19', 'arm64'),
|
|
testing('1.18', 'amd64'),
|
|
testing('1.18', 'arm64'),
|
|
|
|
release(),
|
|
]
|