Files
ansible-role-common/.drone.jsonnet

55 lines
1.3 KiB
Jsonnet
Raw Normal View History

2022-03-14 12:18:38 +13:00
local docker_service() =
{
name: 'docker',
image: 'docker:dind',
privileged: 'true',
volumes: { name: 'dockersock', path: '/var/run' },
};
local email_notification() =
{
name: 'notify by email',
image: 'drillster/drone-email',
settings:
{ host: 'mail.guise.net.nz',
username:
{ from_secret: 'EMAIL_USER' },
password:
{ from_secret: 'EMAIL_PASS' },
from: 'drone@guise.net.nz'
},
when:
{ status: [ 'changed', 'failure' ] },
};
local test_distro(distribution) =
{
name: 'Test on %(distribution)s' % { distribution: distribution },
volumes: { name: 'dockersock', path: '/var/run' },
image: 'guisea/ansible-molecule:latest',
commands: [
'sleep 10', // give docker enough time to start
'mkdir ${DRONE_REPO_NAME}',
'rsync -a . ${DRONE_REPO_NAME} --exclude ${DRONE_REPO_NAME}',
'cd ${DRONE_REPO_NAME}',
'molecule test'
],
environment:
{ MOLECULE_DISTRO: '%(distribution)s' % { distribution: distribution }
},
};
// Run the steps
{
steps: [
[test_distro('centos7'),
email_notification()],
[test_distro('debian10'),
email_notification()],
[test_distro('debian11'),
email_notification()],
],
services: [
docker_service(),
]
}