From a9cdc50b60c481f278fed08c5e03caf1d1e21640 Mon Sep 17 00:00:00 2001 From: dave Date: Sun, 5 Mar 2023 19:27:40 -0800 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..0fcdbf8 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,68 @@ +def image_name = "dpedu/plex" + +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' + } + } + } + } +}