320 lines
6.5 KiB
Plaintext
320 lines
6.5 KiB
Plaintext
# Copyright 2022 wanderer <a_mirre at utb dot cz>
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
def main(ctx):
|
|
return [
|
|
{
|
|
"kind": "pipeline",
|
|
"type": "docker",
|
|
"name": "nix",
|
|
"node": {
|
|
"r": "w"
|
|
},
|
|
"steps": [
|
|
{
|
|
"name": "pull nix",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "always",
|
|
"depends_on": ["clone"],
|
|
"volumes": [
|
|
{
|
|
"name": "nix",
|
|
"path": "/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"uname -r",
|
|
"nix --version"
|
|
]
|
|
},
|
|
{
|
|
"name": "enable flakes",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["pull nix"],
|
|
"volumes": [
|
|
{
|
|
"name": "nix",
|
|
"path": "/nix"
|
|
},
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"cat /etc/nix/nix.conf",
|
|
"echo 'experimental-features = nix-command flakes' >> /etc/nix/nix.conf",
|
|
"cat /etc/nix/nix.conf"
|
|
]
|
|
},
|
|
{
|
|
"name": "enable sandbox",
|
|
"image": "docker.io/library/busybox",
|
|
"pull": "always",
|
|
"depends_on": ["enable flakes"],
|
|
"volumes": [
|
|
{
|
|
"name": "nix",
|
|
"path": "/nix"
|
|
},
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"cat /etc/nix/nix.conf",
|
|
"sed -i 's/^sandbox = false/sandbox = true/' /etc/nix/nix.conf",
|
|
"cat /etc/nix/nix.conf"
|
|
]
|
|
},
|
|
{
|
|
"name": "set up cachix",
|
|
"image": "docker.io/immawanderer/nix-cachix-glibc",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["enable sandbox"],
|
|
"volumes": [
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"cat /etc/nix/nix.conf",
|
|
"cachix use ${DRONE_REPO_NAME}",
|
|
"cat /etc/nix/nix.conf"
|
|
]
|
|
},
|
|
{
|
|
"name": "nix-fmt",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "always",
|
|
"depends_on": ["enable sandbox"],
|
|
"volumes": [
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"nix fmt -- --version",
|
|
"nix fmt -- --check . || " +
|
|
"(echo 'nix code unformatted! run \"nix fmt\" to fix it' && exit 1)"
|
|
]
|
|
},
|
|
{
|
|
"name": "statix",
|
|
"image": "docker.io/immawanderer/nix-statix:linux-amd64",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["enable flakes"],
|
|
"commands": [
|
|
"statix --version",
|
|
"statix check ."
|
|
]
|
|
},
|
|
{
|
|
"name": "nix flake check",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["statix", "enable sandbox"],
|
|
"volumes": [
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"nix flake check --keep-going"
|
|
]
|
|
},
|
|
{
|
|
"name": "nix flake show",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["nix flake check"],
|
|
"volumes": [
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"nix flake show"
|
|
]
|
|
},
|
|
{
|
|
"name": "nix flake metadata",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["nix flake check"],
|
|
"volumes": [
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"nix flake metadata"
|
|
]
|
|
},
|
|
{
|
|
"name": "go test",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["set up cachix"],
|
|
"volumes": [
|
|
{
|
|
"name": "nix",
|
|
"path": "/nix"
|
|
},
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
},
|
|
{
|
|
"name": "gopath",
|
|
"path": "/root/go"
|
|
}
|
|
],
|
|
"commands": [
|
|
"nix develop --command go test -cover ./..."
|
|
]
|
|
},
|
|
{
|
|
"name": "nix build",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["nix-fmt", "set up cachix", "nix flake check"],
|
|
"volumes": [
|
|
{
|
|
"name": "nix",
|
|
"path": "/nix"
|
|
},
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
},
|
|
{
|
|
"name": "gopath",
|
|
"path": "/root/go"
|
|
}
|
|
],
|
|
"commands": [
|
|
"nix build .#${DRONE_REPO_NAME}"
|
|
]
|
|
},
|
|
{
|
|
"name": "ldd",
|
|
"image": "docker.io/nixos/nix:2.8.0-amd64",
|
|
"pull": "if-not-exists",
|
|
"depends_on": ["nix build"],
|
|
"volumes": [
|
|
{
|
|
"name": "nix",
|
|
"path": "/nix"
|
|
},
|
|
{
|
|
"name": "nixconf",
|
|
"path": "/etc/nix"
|
|
}
|
|
],
|
|
"commands": [
|
|
"nix develop --command ldd result/bin/${DRONE_REPO_NAME} || true"
|
|
]
|
|
}
|
|
],
|
|
"volumes": [
|
|
{
|
|
"name": "nix",
|
|
"temp": {}
|
|
},
|
|
{
|
|
"name": "nixconf",
|
|
"temp": {}
|
|
},
|
|
{
|
|
"name": "gopath",
|
|
"temp": {}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"kind": "pipeline",
|
|
"type": "docker",
|
|
"name": "golangci-lint|godocs",
|
|
"steps": [
|
|
{
|
|
"name": "golangci-lint",
|
|
"image": "docker.io/library/golang:1.18.5-alpine3.16",
|
|
"pull": "always",
|
|
"environment": {
|
|
"CGO_ENABLED": "0",
|
|
},
|
|
"commands": [
|
|
"go install -v "+
|
|
"github.com/golangci/golangci-lint/cmd/golangci-lint@"+
|
|
"v1.49.0",
|
|
"golangci-lint version",
|
|
"golangci-lint run -v --timeout 5m"
|
|
],
|
|
},
|
|
{
|
|
"name": "goreportcard refresh",
|
|
"image": "docker.io/curlimages/curl:7.83.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 " +
|
|
"-F \"repo=git.dotya.ml/${DRONE_REPO}\" " +
|
|
"https://goreportcard.com/checks " +
|
|
"-o /dev/null"
|
|
]
|
|
},
|
|
{
|
|
"name": "godocs refresh",
|
|
"image": "docker.io/curlimages/curl:7.83.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"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
|
|
# vim: ft=bzl.starlark syntax=bzl.starlark noexpandtab ts=4 foldmethod=manual
|