Add CentOS 8 openafs package build job

Split the extant job into separate centos7 and centos8 parts (this is
so we can easily just rm the centos7 path when it's not required,
rather than making some mashed up combined job), and add a centos8
job to build openafs packages for centos-8.

This is in preparation for making centos-8 wheels; we copy the wheel
directly from the building host so it needs an openafs client.

Change-Id: I2d6392879aac85431253284f217b9daa4a9af94d
This commit is contained in:
Ian Wienand 2020-01-14 16:41:02 +11:00
parent 401f2132f5
commit 7160e29bef
5 changed files with 83 additions and 2 deletions

View File

@ -0,0 +1,28 @@
- hosts: all
tasks:
# Note we always create the artifacts dir so that the openstack artifacts
# publishing playbook is happy.
- name: Ensure artifacts directory exists
file:
state: directory
path: '{{ zuul.executor.work_root }}/artifacts/package-afs-centos8'
delegate_to: localhost
# We only build an RPM if one doesn't exist for the desired version.
- name: Check for built RPMs
stat:
path: '{{ ansible_user_dir }}/rpmbuild/RPMS/x86_64'
get_checksum: false
get_mime: false
get_md5: false
register: rpms_exist
- name: Copy RPMs back for publication
when: rpms_exist.stat.exists
synchronize:
src: '{{ ansible_user_dir }}/rpmbuild/RPMS/x86_64/'
dest: '{{ zuul.executor.work_root }}/artifacts/package-afs-centos8'
mode: pull
delete: true
recursive: true

View File

@ -0,0 +1,41 @@
- hosts: all
tasks:
- name: Build CentOS 8 packages of OpenAFS
shell: |
set -eux
VERSION=1.8.4
SRC_VERSION=${VERSION}-1
SRC_RPM=openafs-${SRC_VERSION}.src.rpm
SRC_URL=https://www.openafs.org/dl/openafs/${VERSION}/${SRC_RPM}
UPSTREAM_BASE=https://tarballs.openstack.org/project-config/package-afs-centos8
UPSTREAM_CHECK=${UPSTREAM_BASE}/openafs-client-${SRC_VERSION}.el8.x86_64.rpm
if wget -O/dev/null -q $UPSTREAM_CHECK; then
echo "Found existing upstream RPM build, nothing to do"
# scp should just publish nothing
exit 0
fi
# some common prereqs
sudo dnf -y group install "Development Tools"
sudo dnf -y install rpm-build kernel-devel createrepo
wget $SRC_URL
# install the build dependencies for the package
sudo dnf builddep -y ./${SRC_RPM}
# install source-rpm
# (this installs to ~/rpmbuild)
rpm -i ./${SRC_RPM}
# build everything
pushd ~/rpmbuild/SPECS/
rpmbuild -ba ./openafs.spec
popd
# create final repo for copying
createrepo ~/rpmbuild/RPMS/x86_64
args:
executable: /bin/bash

View File

@ -1063,10 +1063,22 @@
for our centos hosts that need access to the mirror to
consume.
parent: publish-openstack-artifacts
run: playbooks/package-afs-centos/run.yaml
post-run: playbooks/package-afs-centos/post.yaml
run: playbooks/package-afs-centos/centos7/run.yaml
post-run: playbooks/package-afs-centos/centos7/post.yaml
nodeset: centos-7
- job:
name: project-config-build-openafs-centos8
description: |
There are no official builds for AFS on CentOS 8, hence
we build our own and publish them to tarballs.openstack.org
for our centos hosts that need access to the mirror to
consume.
parent: publish-openstack-artifacts
run: playbooks/package-afs-centos/centos8/run.yaml
post-run: playbooks/package-afs-centos/centos8/post.yaml
nodeset: centos-8
- job:
name: openstack-zuul-jobs-linters
parent: tox