From 04573babc0fb6b1d4ad8a0a70977650cdbc33c63 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Sun, 12 Aug 2018 10:23:52 -0500 Subject: [PATCH] ci: Add pipeline for Koji --- ci/koji.jenkinsfile | 97 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 ci/koji.jenkinsfile diff --git a/ci/koji.jenkinsfile b/ci/koji.jenkinsfile new file mode 100644 index 0000000..792da1c --- /dev/null +++ b/ci/koji.jenkinsfile @@ -0,0 +1,97 @@ +// vim: set ft=groovy sw=4 ts=4 sts=4 et : + +pipeline { + agent { + label 'ansible' + } + + triggers { + cron 'H H * * *' + } + + stages { + stage('kinit') { + steps { + withCredentials([file( + credentialsId: 'keytab-jenkins@pyrocufflink.blue', + variable: 'KEYTAB')]) { + sh 'kinit -kt "${KEYTAB}" jenkins@PYROCUFFLINK.BLUE' + } + withCredentials([file( + credentialsId: 'vault-jenkins@pyrocufflink.blue', + variable: 'SUDO_PASS_FILE' + )]) { + sh 'cp "${SUDO_PASS_FILE}" group_vars/pyrocufflink/sudo-pass' + } + } + } + + stage('Remount R/W') { + steps { + ansiblePlaybook \ + playbook: 'remount.yml', + limit: 'koji', + become: true, + vaultCredentialsId: 'ansible-vault', + extraVars: [ + remount_state: 'rw', + ] + } + } + + stage('Koji Hub') { + steps { + ansiblePlaybook \ + playbook: 'koji-web.yml', + become: true, + vaultCredentialsId: 'ansible-vault', + extras: '--diff' + } + } + + stage('Koji Web') { + steps { + ansiblePlaybook \ + playbook: 'koji-web.yml', + become: true, + vaultCredentialsId: 'ansible-vault', + extras: '--diff' + } + } + + stage('Koji Builder') { + steps { + ansiblePlaybook \ + playbook: 'koji-builder.yml', + become: true, + vaultCredentialsId: 'ansible-vault', + extras: '--diff' + } + } + + stage('Remount R/O') { + steps { + ansiblePlaybook \ + playbook: 'remount.yml', + limit: 'koji', + become: true, + vaultCredentialsId: 'ansible-vault', + extras: '--diff' + } + } + + } + + post { + always { + sh 'kdestroy' + sh 'find . -name sudo-pass -delete' + } + failure { + emailext \ + to: 'gyrfalcon@ebonfire.com', + subject: '$DEFAULT_SUBJECT', + body: '$DEFAULT_CONTENT' + } + } +}