mirror of
https://github.com/thegeeklab/drone-matrix.git
synced 2024-11-24 19:20:39 +00:00
162 lines
3.4 KiB
Plaintext
162 lines
3.4 KiB
Plaintext
local PipelineTesting = {
|
|
kind: "pipeline",
|
|
name: "testing",
|
|
platform: {
|
|
os: "linux",
|
|
arch: "amd64",
|
|
},
|
|
steps: [
|
|
{
|
|
name: "vet",
|
|
image: "golang:1.11",
|
|
pull: "always",
|
|
environment: {
|
|
GO111MODULE: "on",
|
|
},
|
|
commands: [
|
|
"go vet ./...",
|
|
],
|
|
},
|
|
{
|
|
name: "test",
|
|
image: "golang:1.11",
|
|
pull: "always",
|
|
environment: {
|
|
GO111MODULE: "on",
|
|
},
|
|
commands: [
|
|
"go test -cover ./...",
|
|
],
|
|
},
|
|
],
|
|
trigger: {
|
|
branch: [ "master" ],
|
|
},
|
|
};
|
|
|
|
local PipelineBuild(os="linux", arch="amd64") = {
|
|
kind: "pipeline",
|
|
name: os + "-" + arch,
|
|
platform: {
|
|
os: os,
|
|
arch: arch,
|
|
},
|
|
steps: [
|
|
{
|
|
name: "build-push",
|
|
image: "golang:1.11",
|
|
pull: "always",
|
|
environment: {
|
|
CGO_ENABLED: "0",
|
|
GO111MODULE: "on",
|
|
},
|
|
commands: [
|
|
"go build -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/" + os + "/" + arch + "/drone-matrix",
|
|
],
|
|
when: {
|
|
event: [ "push", "pull_request" ],
|
|
},
|
|
},
|
|
{
|
|
name: "build-tag",
|
|
image: "golang:1.11",
|
|
pull: "always",
|
|
environment: {
|
|
CGO_ENABLED: "0",
|
|
GO111MODULE: "on",
|
|
},
|
|
commands: [
|
|
"go build -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/" + os + "/" + arch + "/drone-matrix",
|
|
],
|
|
when: {
|
|
event: [ "tag" ],
|
|
},
|
|
},
|
|
{
|
|
name: "dryrun",
|
|
image: "plugins/docker:" + os + "-" + arch,
|
|
pull: "always",
|
|
settings: {
|
|
dry_run: true,
|
|
tags: os + "-" + arch,
|
|
dockerfile: "docker/Dockerfile." + os + "." + arch,
|
|
repo: "plugins/matrix",
|
|
username: { "from_secret": "docker_username" },
|
|
password: { "from_secret": "docker_password" },
|
|
},
|
|
when: {
|
|
event: [ "pull_request" ],
|
|
},
|
|
},
|
|
{
|
|
name: "publish",
|
|
image: "plugins/docker:" + os + "-" + arch,
|
|
pull: "always",
|
|
settings: {
|
|
auto_tag: true,
|
|
auto_tag_suffix: os + "-" + arch,
|
|
dockerfile: "docker/Dockerfile." + os + "." + arch,
|
|
repo: "plugins/matrix",
|
|
username: { "from_secret": "docker_username" },
|
|
password: { "from_secret": "docker_password" },
|
|
},
|
|
when: {
|
|
event: [ "push", "tag" ],
|
|
},
|
|
},
|
|
],
|
|
depends_on: [
|
|
"testing",
|
|
],
|
|
trigger: {
|
|
branch: [ "master" ],
|
|
},
|
|
};
|
|
|
|
local PipelineNotifications = {
|
|
kind: "pipeline",
|
|
name: "notifications",
|
|
platform: {
|
|
os: "linux",
|
|
arch: "amd64",
|
|
},
|
|
steps: [
|
|
{
|
|
name: "manifest",
|
|
image: "plugins/manifest:1",
|
|
pull: "always",
|
|
settings: {
|
|
username: { "from_secret": "docker_username" },
|
|
password: { "from_secret": "docker_password" },
|
|
spec: "docker/manifest.tmpl",
|
|
ignore_missing: true,
|
|
},
|
|
},
|
|
{
|
|
name: "microbadger",
|
|
image: "plugins/webhook:1",
|
|
pull: "always",
|
|
settings: {
|
|
url: { "from_secret": "microbadger_url" },
|
|
},
|
|
},
|
|
],
|
|
depends_on: [
|
|
"linux-amd64",
|
|
"linux-arm64",
|
|
"linux-arm",
|
|
],
|
|
trigger: {
|
|
branch: [ "master" ],
|
|
event: [ "push", "tag" ],
|
|
},
|
|
};
|
|
|
|
[
|
|
PipelineTesting,
|
|
PipelineBuild("linux", "amd64"),
|
|
PipelineBuild("linux", "arm64"),
|
|
PipelineBuild("linux", "arm"),
|
|
PipelineNotifications,
|
|
]
|