ci: add .drone.star
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
surtur 2022-09-14 12:45:33 +02:00
parent 49f1968ecf
commit d4dc847006
Signed by: wanderer
SSH Key Fingerprint: SHA256:MdCZyJ2sHLltrLBp0xQO0O1qTW9BT/xl5nXkDvhlMCI
3 changed files with 301 additions and 0 deletions

297
.drone.star Normal file
View File

@ -0,0 +1,297 @@
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}"
]
}
],
"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:sts=4:sw=4:foldmethod=manual

1
.gitattributes vendored
View File

@ -1,3 +1,4 @@
*.go diff=golang
*.md diff=markdown
*.star linguist-language=Starlark
resources/* -text -eol linguist-vendored

3
.gitignore vendored
View File

@ -5,6 +5,9 @@ result
result-*
diwt
# generated from starlark
.drone.yml
.vimrc
# coverage or other binary files