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:
parent
401f2132f5
commit
7160e29bef
28
playbooks/package-afs-centos/centos8/post.yaml
Normal file
28
playbooks/package-afs-centos/centos8/post.yaml
Normal 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
|
41
playbooks/package-afs-centos/centos8/run.yaml
Normal file
41
playbooks/package-afs-centos/centos8/run.yaml
Normal 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
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user