mat.services/.drone.jsonnet

44 lines
916 B
Plaintext

local Volume = { name: 'site', path: '/site' };
local NetlifyStep(env, prod) = {
name: 'netlify deploy ' + env,
image: 'internetmat/drone-netlify',
volumes: [Volume],
settings: {
token: { from_secret: 'netlify_token' },
site: { from_secret: 'netlify_site_id' },
path: '/site',
prod: prod,
},
when: if prod then {
event: ['promote'],
target: ['prod'],
} else {
target: { exclude: ['prod'] },
},
};
{
kind: 'pipeline',
type: 'docker',
name: 'default',
environment: {
NIX: 'nix --extra-experimental-features nix-command --extra-experimental-features flakes',
},
volumes: [{ name: 'site', temp: {} }],
steps: [
{
name: 'nix build',
image: 'nixos/nix',
volumes: [Volume],
commands: [
'$NIX build',
'cp -r result/* /site/',
],
},
NetlifyStep('staging', false),
NetlifyStep('prod', true),
],
}