summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwu.chunyang <wuchunyang@yovole.com>2022-11-09 22:52:49 +0800
committerwu.chunyang <wuchunyang@yovole.com>2022-11-18 14:25:22 +0800
commit5a960b37a463984aea3fff078e8fcb5ccd85a949 (patch)
tree02e8ac703d9d2cb089cd6179a57fb3752559f169
parent3789a3951b120ebd0eaaa5a9b196d3cc30418092 (diff)
downloadtrove-5a960b37a463984aea3fff078e8fcb5ccd85a949.tar.gz
CI: test build docker image
Change-Id: Ia8ce0d8ec8f099501a39dc8bdff53a394bd53fea
-rw-r--r--playbooks/image-build/docker-registry.yaml68
-rw-r--r--zuul.d/jobs.yaml11
-rw-r--r--zuul.d/projects.yaml1
3 files changed, 80 insertions, 0 deletions
diff --git a/playbooks/image-build/docker-registry.yaml b/playbooks/image-build/docker-registry.yaml
new file mode 100644
index 00000000..fc9074f1
--- /dev/null
+++ b/playbooks/image-build/docker-registry.yaml
@@ -0,0 +1,68 @@
+- hosts: all
+ tasks:
+ - name: Ensure artifacts/images directory exists
+ file:
+ path: '{{ ansible_user_dir }}/images'
+ state: directory
+ - name: Install docker
+ become: true
+ package:
+ name: docker.io
+ state: present
+ - name: Start docker
+ become: true
+ systemd:
+ name: docker.io
+ daemon_reload: true
+ - name: Run docker registry
+ become: true
+ shell: docker run -d --net=host --restart=always -v /opt/trove_registry/:/var/lib/registry --name registry registry:2
+ - name: Pull and push trove datastore images
+ become: true
+ shell: docker pull {{ item }} && docker tag {{item}} 127.0.0.1:5000/trove-datastores/{{ item }} && \
+ docker push 127.0.0.1:5000/trove-datastores/{{ item }}
+ loop:
+ - "mysql:5.7"
+ - "mysql:8.0"
+ - "mariadb:10.4"
+ - "postgres:12"
+ - name: Build mysql 5.7 backup image
+ become: true
+ shell: docker build -t 127.0.0.1:5000/trove-datastores/db-backup-mysql5.7:1.1.0 .
+ args:
+ chdir: "{{ ansible_user_dir }}/src/opendev.org/openstack/trove/backup"
+ - name: Build mysql 8.0 backup image
+ become: true
+ shell: sed -i s/mysql5.7/mysql8.0/ Dockerfile && \
+ docker build -t 127.0.0.1:5000/trove-datastores/db-backup-mysql8.0:1.1.0 .
+ args:
+ chdir: "{{ ansible_user_dir }}/src/opendev.org/openstack/trove/backup"
+ - name: Build mariadb backup image
+ become: true
+ shell: sed -i s/mysql8.0/mariadb/ Dockerfile && \
+ docker build -t 127.0.0.1:5000/trove-datastores/db-backup-mariadb:1.1.0 .
+ args:
+ chdir: "{{ ansible_user_dir }}/src/opendev.org/openstack/trove/backup"
+ - name: Build postgresql backup image
+ become: true
+ shell: sed -i s/mariadb/postgresql/ Dockerfile && \
+ docker build -t 127.0.0.1:5000/trove-datastores/db-backup-postgresql:1.1.2 .
+ args:
+ chdir: "{{ ansible_user_dir }}/src/opendev.org/openstack/trove/backup"
+ - name: Push the backup images
+ become: true
+ shell: docker push 127.0.0.1:5000/trove-datastores/db-backup-{{item}}
+ loop:
+ - "mariadb:1.1.0"
+ - "postgresql:1.1.2"
+ - name: Push mysql backup images
+ become: true
+ shell: docker push 127.0.0.1:5000/trove-datastores/db-backup-mysql{{ item }}:1.1.0
+ loop:
+ - "5.7"
+ - "8.0"
+ - name: Compress the docker registry files
+ become: true
+ archive:
+ path: "/opt/trove_registry/"
+ dest: '{{ ansible_user_dir }}/images/trove-datastore-registry-master.tar.gz' \ No newline at end of file
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 845eb7a7..a2747831 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -477,3 +477,14 @@
branch: master
dev_mode: true
image_suffix: "-dev"
+
+- job:
+ name: publish-trove-datastore-images
+ description: |
+ Build and publish trove datastore docker images to
+ tarballs.openstack.org.
+ run: playbooks/image-build/docker-registry.yaml
+ post-run: playbooks/image-build/post.yaml
+ nodeset: trove-ubuntu-focal-single
+ required-projects:
+ - openstack/trove \ No newline at end of file
diff --git a/zuul.d/projects.yaml b/zuul.d/projects.yaml
index 90030aba..4f6af368 100644
--- a/zuul.d/projects.yaml
+++ b/zuul.d/projects.yaml
@@ -43,3 +43,4 @@
jobs:
- publish-trove-guest-image-ubuntu-focal
- publish-trove-guest-image-ubuntu-focal-dev
+ - publish-trove-datastore-images