feat:drone-images
This commit is contained in:
parent
da35cfd775
commit
22d87f9487
|
@ -19,7 +19,7 @@ function(config)
|
||||||
depth: 0,
|
depth: 0,
|
||||||
},
|
},
|
||||||
services: [
|
services: [
|
||||||
images(config).docker {
|
images(config).docker() {
|
||||||
privileged: true,
|
privileged: true,
|
||||||
volumes: [
|
volumes: [
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,7 @@ function(config)
|
||||||
publicSecrets + secretSecrets + buildSecrets,
|
publicSecrets + secretSecrets + buildSecrets,
|
||||||
),
|
),
|
||||||
)(
|
)(
|
||||||
images(config).ssh{
|
images(config).ssh() {
|
||||||
name: 'deploy',
|
name: 'deploy',
|
||||||
settings +: {
|
settings +: {
|
||||||
envs +: std.map(
|
envs +: std.map(
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
local images = import 'lib/images.libsonnet';
|
||||||
|
|
||||||
|
function(config)
|
||||||
|
{
|
||||||
|
kind: 'pipeline',
|
||||||
|
type: 'docker',
|
||||||
|
name: 'drone-images',
|
||||||
|
clone: {
|
||||||
|
disable: true,
|
||||||
|
},
|
||||||
|
steps: [
|
||||||
|
images(config).ssh() {
|
||||||
|
settings +: {
|
||||||
|
script +: [
|
||||||
|
'mkdir -p /%(root)s/.images/%(name)s/drone-images' % config,
|
||||||
|
'rm -f /%(root)s/.images/%(name)s/drone-images/*.*' % config,
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: 'mkdir',
|
||||||
|
},
|
||||||
|
] +
|
||||||
|
std.map(
|
||||||
|
function(key)
|
||||||
|
images(config).ssh() {
|
||||||
|
settings +: {
|
||||||
|
envs +: [
|
||||||
|
'registry_domain',
|
||||||
|
'registry_port',
|
||||||
|
'registry_password',
|
||||||
|
],
|
||||||
|
script +: [
|
||||||
|
'docker pull %s' % images(config)[key]().image,
|
||||||
|
'docker save %(image)s -o /%(root)s/.images/%(name)s/drone-images/%(key)s.tar' % (
|
||||||
|
config +
|
||||||
|
{
|
||||||
|
image: images(config)[key]().image,
|
||||||
|
key: key,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
'echo "docker load %(key)s.tar" >> /%(root)s/.images/%(name)s/drone-images/load.sh' % (
|
||||||
|
config +
|
||||||
|
{
|
||||||
|
key: key,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
],
|
||||||
|
},
|
||||||
|
name: key,
|
||||||
|
},
|
||||||
|
std.objectFields(images(config)),
|
||||||
|
)
|
||||||
|
} {
|
||||||
|
trigger +: {
|
||||||
|
event +: [
|
||||||
|
'promote',
|
||||||
|
],
|
||||||
|
target +: [
|
||||||
|
'drone-images',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
|
@ -4,7 +4,7 @@ local login = import 'login.libsonnet';
|
||||||
|
|
||||||
function(config)
|
function(config)
|
||||||
function(secrets)
|
function(secrets)
|
||||||
images(config).docker {
|
images(config).docker() {
|
||||||
name +: 'build:',
|
name +: 'build:',
|
||||||
environment +: environment.environmentSecrets(secrets),
|
environment +: environment.environmentSecrets(secrets),
|
||||||
volumes: [
|
volumes: [
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
function (config) {
|
function (config) {
|
||||||
docker: {
|
docker(): {
|
||||||
name: 'docker',
|
name: 'docker',
|
||||||
image: '%(registry)sdocker:19.03.12-dind@sha256:8dded163e463f4a59bf305b3dca98e312b2cfb89a43da3872e48f95a7554c48f' % config,
|
image: '%(registry)sdocker:19.03.12-dind@sha256:8dded163e463f4a59bf305b3dca98e312b2cfb89a43da3872e48f95a7554c48f' % config,
|
||||||
},
|
},
|
||||||
scp(target): {
|
scp(target = ''): {
|
||||||
name: 'scp',
|
name: 'scp',
|
||||||
image: '%(registry)sappleboy/drone-scp:1.6.2@sha256:bd37a55f4b97e7742b0de7333669b96220b3cc422d366e1fa8c34059b736ab47' % config,
|
image: '%(registry)sappleboy/drone-scp:1.6.2@sha256:bd37a55f4b97e7742b0de7333669b96220b3cc422d366e1fa8c34059b736ab47' % config,
|
||||||
settings +: {
|
settings +: {
|
||||||
|
@ -14,7 +14,7 @@ function (config) {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
ssh: {
|
ssh(): {
|
||||||
image: '%(registry)sappleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea' % config,
|
image: '%(registry)sappleboy/drone-ssh:1.6.2@sha256:b801dc2cd238c192b6e99acfa7bc3f5b9a03f312bd2feb1e10b3a7a28a1b80ea' % config,
|
||||||
settings +: {
|
settings +: {
|
||||||
envs: [
|
envs: [
|
||||||
|
@ -27,11 +27,4 @@ function (config) {
|
||||||
script: [],
|
script: [],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wait(delay): {
|
|
||||||
image: '%(registry)salpine:3.12.0@sha256:90baa0922fe90624b05cb5766fa5da4e337921656c2f8e2b13bd3c052a0baac1' % config,
|
|
||||||
name: 'wait',
|
|
||||||
commands: [
|
|
||||||
'sleep %s' % delay,
|
|
||||||
],
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -30,7 +30,7 @@ function(config)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(
|
(
|
||||||
images(config).ssh {
|
images(config).ssh() {
|
||||||
settings +: {
|
settings +: {
|
||||||
script +: [
|
script +: [
|
||||||
'rm -f env-%s' % config.name,
|
'rm -f env-%s' % config.name,
|
||||||
|
|
|
@ -14,7 +14,7 @@ function(config)
|
||||||
disable: true,
|
disable: true,
|
||||||
},
|
},
|
||||||
services: [
|
services: [
|
||||||
images(config).docker {
|
images(config).docker() {
|
||||||
privileged: true,
|
privileged: true,
|
||||||
volumes: [
|
volumes: [
|
||||||
{
|
{
|
||||||
|
@ -52,7 +52,7 @@ function(config)
|
||||||
],
|
],
|
||||||
steps:
|
steps:
|
||||||
std.map(
|
std.map(
|
||||||
function(def) images(config).docker {
|
function(def) images(config).docker() {
|
||||||
name: def.save,
|
name: def.save,
|
||||||
environment +: environment
|
environment +: environment
|
||||||
.environmentSecrets(config.secrets),
|
.environmentSecrets(config.secrets),
|
||||||
|
|
|
@ -19,7 +19,7 @@ function(config)
|
||||||
disable: true,
|
disable: true,
|
||||||
},
|
},
|
||||||
steps: [
|
steps: [
|
||||||
images(config).ssh {
|
images(config).ssh() {
|
||||||
settings +: {
|
settings +: {
|
||||||
script +: [
|
script +: [
|
||||||
'mkdir -p /%(root)s/.images/%(name)s/built' % config,
|
'mkdir -p /%(root)s/.images/%(name)s/built' % config,
|
||||||
|
@ -34,7 +34,7 @@ function(config)
|
||||||
] +
|
] +
|
||||||
std.map(
|
std.map(
|
||||||
function(def)
|
function(def)
|
||||||
images(config).ssh {
|
images(config).ssh() {
|
||||||
settings +: {
|
settings +: {
|
||||||
envs +: [
|
envs +: [
|
||||||
'registry_domain',
|
'registry_domain',
|
||||||
|
@ -71,7 +71,7 @@ function(config)
|
||||||
) +
|
) +
|
||||||
std.map(
|
std.map(
|
||||||
function(def)
|
function(def)
|
||||||
images(config).ssh {
|
images(config).ssh() {
|
||||||
settings +: {
|
settings +: {
|
||||||
envs +: [
|
envs +: [
|
||||||
'registry_domain',
|
'registry_domain',
|
||||||
|
|
Loading…
Reference in New Issue