go-xkcdreader/.drone.starlark
surtur 105e9efeeb
All checks were successful
continuous-integration/drone/push Build is passing
ci(nix): run nixpkgs-fmt asap
2022-05-21 21:47:27 +02:00

412 lines
8.3 KiB
Plaintext

# Copyright 2022 wanderer <a_mirre at utb dot cz>
# SPDX-License-Identifier: GPL-3.0-or-later
# vim: ft=bzl.starlark noexpandtab tw=4 ts=4
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": "nixpkgs-fmt",
"image": "docker.io/immawanderer/nix-nixpkgs-fmt:linux-amd64",
"pull": "always",
"depends_on": ["clone"],
"commands": [
"nixpkgs-fmt --version || true",
"nixpkgs-fmt --check . || (echo 'run `nixpkgs-fmt .` to fix it' && exit 1)"
]
},
{
"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 go-xkcdreader",
"cat /etc/nix/nix.conf"
]
},
{
"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": ["nixpkgs-fmt", "statix"],
"depends_on": ["statix", "enable sandbox"],
"volumes": [
{
"name": "nixconf",
"path": "/etc/nix"
}
],
"commands": [
"NIXPKGS_ALLOW_BROKEN=1 nix flake check --impure"
]
},
{
"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 vet|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 vet ./...",
"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 flake check", "statix", "pre-build"],
"depends_on": ["nixpkgs-fmt", "set up cachix", "nix flake check"],
"volumes": [
{
"name": "nix",
"path": "/nix"
},
{
"name": "nixconf",
"path": "/etc/nix"
}
],
"commands": [
"nix build .#go-xkcdreader"
]
},
{
"name": "go-xkcdreader version",
"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": [
"./result/bin/go-xkcdreader version"
]
},
{
"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/go-xkcdreader"
]
}
],
"volumes": [
{
"name": "nix",
"temp": {}
},
{
"name": "nixconf",
"temp": {}
},
{
"name": "gopath",
"temp": {}
}
]
},
{
"kind": "pipeline",
"type": "docker",
"name": "archlinux",
"node": {
"r": "w"
},
"steps": [
{
"name": "pull archlinux",
"image": "docker.io/immawanderer/archlinux-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["clone"],
"commands": [
"uname -r",
"cat /etc/os-release"
]
},
{
"name": "go env",
"image": "docker.io/immawanderer/archlinux-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["pull archlinux"],
"commands": [
"go env",
]
},
{
"name": "vet|test",
"image": "docker.io/immawanderer/archlinux-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["pull archlinux"],
"volumes": [
{
"name": "gopath",
"path": "/root/go"
}
],
"commands": [
"go vet ./...",
"go test -cover ./..."
]
},
{
"name": "build",
"image": "docker.io/immawanderer/archlinux-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["pull archlinux"],
"volumes": [
{
"name": "gopath",
"path": "/root/go"
}
],
"commands": [
"go version",
"gcc --version",
"go build -v ."
]
},
{
"name": "ldd",
"image": "docker.io/immawanderer/archlinux-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["build"],
"commands": [
"ldd --version",
"ldd go-xkcdreader"
]
}
],
"volumes": [
{
"name": "gopath",
"temp": {}
}
]
},
{
"kind": "pipeline",
"type": "docker",
"name": "fedora",
"node": {
"r": "w"
},
"steps": [
{
"name": "pull fedora",
"image": "docker.io/immawanderer/fedora-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["clone"],
"commands": [
"uname -r",
"cat /etc/os-release"
]
},
{
"name": "go env",
"image": "docker.io/immawanderer/fedora-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["pull fedora"],
"commands": [
"go env",
]
},
{
"name": "vet|test",
"image": "docker.io/immawanderer/fedora-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["pull fedora"],
"volumes": [
{
"name": "gopath",
"path": "/root/go"
}
],
"commands": [
"go vet ./...",
"go test -cover ./..."
]
},
{
"name": "build",
"image": "docker.io/immawanderer/fedora-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["pull fedora"],
"volumes": [
{
"name": "gopath",
"path": "/root/go"
}
],
"commands": [
"go version",
"gcc --version",
"go build -v ."
]
},
{
"name": "ldd",
"image": "docker.io/immawanderer/fedora-go-fyne:linux-amd64",
"pull": "always",
"depends_on": ["build"],
"commands": [
"ldd --version",
"ldd go-xkcdreader"
]
}
],
"volumes": [
{
"name": "gopath",
"temp": {}
}
]
}
]