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

This commit is contained in:
surtur 2022-06-14 17:31:59 +02:00
parent 43b9d611a2
commit 0f8f3bbef3
Signed by: wanderer
GPG Key ID: 19CE1EC1D9E0486D
4 changed files with 297 additions and 0 deletions

290
.drone.star Normal file
View File

@ -0,0 +1,290 @@
# 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",
"steps": [
{
"name": "golangci-lint",
"image": "docker.io/immawanderer/archlinux-go-fyne:linux-amd64",
"pull": "always",
"commands": [
"curl -sSfL " +
"https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh"+
" | sh -s -- -b $(go env GOPATH)/bin v1.46.2",
"export PATH=\"$(go env GOPATH)/bin:$PATH\"",
"golangci-lint --version",
"golangci-lint run -v --timeout 5m"
],
},
{
"name": "trigger refresh",
"image": "docker.io/curlimages/curl:7.83.1",
"pull": "if-not-exists",
"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"
]
}
]
}
]
# vim: ft=bzl.starlark syntax=bzl.starlark noexpandtab ts=4 foldmethod=manual

1
.gitattributes vendored
View File

@ -1,3 +1,4 @@
*.go diff=golang
*.md diff=markdown
*.vimrc linguist-language=vim
*.star linguist-language=Starlark

4
.gitignore vendored
View File

@ -7,6 +7,10 @@ math-optim
.vimrc
# drone starlark command used for "test-conversion" to yaml (by default)
# produces .drone.yml, hence ignore the generated .drone.yml
.drone.yml
# coverage or other binary files
*.out

View File

@ -3,6 +3,8 @@ # [`math-optim`](https://git.dotya.ml/wanderer/math-optim)
> solving a few mathematical optimisation tasks using well-known algorithms
[![built with nix](https://builtwithnix.org/badge.svg)](https://builtwithnix.org)
[![Build Status](https://drone.dotya.ml/api/badges/wanderer/math-optim/status.svg?ref=refs/heads/development)](https://drone.dotya.ml/wanderer/math-optim)
[![Go Report Card](https://goreportcard.com/badge/git.dotya.ml/wanderer/math-optim)](https://goreportcard.com/report/git.dotya.ml/wanderer/math-optim)
this repo holds the *sawce* of the semestral project for the Mathematical
Informatics course.