From 6106fa9aa5c6f47b4ed056e808450644751d1dd2 Mon Sep 17 00:00:00 2001 From: dave Date: Wed, 1 Jun 2022 22:14:49 -0700 Subject: [PATCH] add jenkinsfile --- Jenkinsfile | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..cefb7ef --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,68 @@ +def image_name = "dpedu/pysonic" + +pipeline { + agent { + kubernetes { + yaml """ +apiVersion: v1 +kind: Pod +spec: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: # avoid nodes already running a jenkins job + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: jenkins + operator: In + values: + - slave + topologyKey: node + containers: + - name: docker + image: docker:20-dind + args: + - "--insecure-registry" + - "dockermirror:5000" + securityContext: + privileged: true +""" + } + } + stages { + stage("Build image") { + steps { + container("docker") { + script { + try { + docker.withRegistry('http://dockermirror:5000') { + docker.image("ubuntu:focal").pull() + docker.image(image_name).pull() // Pull a recent version to share base layers with (?) + } + } catch (exc) { + echo "couldn't pull image, assuming we're building it for the first time" + } + docker.build(image_name) + } + } + } + } + stage("Push image") { + steps { + container("docker") { + script { + docker.withRegistry('http://dockermirror:5000') { + docker.image(image_name).push("latest") + } + } + } + } + } + stage("Show images") { + steps { + container("docker") { + sh 'docker images' + } + } + } + } +}