#!/usr/bin/env groovy

def workspacePath = "/home/jenkins/workspace"
def buildLabel = "task.mirror.create-${UUID.randomUUID().toString()}"
def sourcePath = "${workspacePath}/src"

// FIXME(jtgans): Get rid of privileged! This is a security risk!
def jnlpContainer = containerTemplate(name: 'jnlp',
                                      image: 'jenkins/jnlp-slave:alpine')
def debianContainer = containerTemplate(name: 'debian',
                                        image: 'gcr.io/mendel-linux-cloud-infra/mendel-builder:latest',
                                        command: 'cat',
                                        args: '',
                                        ttyEnabled: true,
                                        privileged: true)
def aptlyVolume = persistentVolumeClaim(claimName: 'aptly-state', mountPath: '/var/lib/aptly')

podTemplate(label: buildLabel, containers: [jnlpContainer, debianContainer], volumes: [aptlyVolume], envVars: []) {
    def date = new Date()
    String stamp = date.format("yyyyMMdd-HHmmss")

    node(buildLabel) {
        dir(sourcePath) {
            container('debian') {
                stage('Keys') {
                    if (params.keys.size() > 0) {
                        sh """
                           gpg --homedir /var/lib/aptly/.gnupg \
                               --no-default-keyring \
                               --keyring trustedkeys.gpg \
                               --keyserver pool.sks-keyservers.net \
                               --recv-keys ${params.keys}
                           """
                    }
                }

                stage('Mirror') {
                    sh """
                       aptly mirror create ${params.name} ${params.url} ${params.release} ${params.components} -architectures="${params.architectures}"
                       """
                }
            }
        }
    }
}
