Update to classic charms to build using charmcraft in CI

This update is to ensure that the Zuul Canonical CI builds the charm
before functional tests and ensure that that artifact is used for the
functional tests.  This is to try to ensure that the charm that gets
landed to the charmhub is the same charm that was tested with.

Change-Id: I41b2b99a832879e786936f34937c6c876439e924
This commit is contained in:
Alex Kavanagh 2022-02-15 15:50:21 +00:00 committed by Liam Young
parent 3d21ccf27f
commit 110fcddcf7
13 changed files with 68 additions and 40 deletions

7
build-requirements.txt Normal file

@ -0,0 +1,7 @@
# NOTES(lourot):
# * We don't install charmcraft via pip anymore because it anyway spins up a
# container and scp the system's charmcraft snap inside it. So the charmcraft
# snap is necessary on the system anyway.
# * `tox -e build` successfully validated with charmcraft 1.2.1
cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35.

@ -10,10 +10,8 @@ parts:
- hooks/*
- lib/*
- templates/*
- actions.yaml
- config.yaml
- copyright
- hardening.yaml
- icon.svg
- LICENSE
- Makefile

BIN
cinder-backup.charm Normal file

Binary file not shown.

@ -4,3 +4,7 @@
- charm-unit-jobs-py39
- charm-xena-functional-jobs
- charm-yoga-functional-jobs
vars:
needs_charm_build: true
charm_build_name: cinder-backup
build_type: charmcraft

13
rename.sh Executable file

@ -0,0 +1,13 @@
#!/bin/bash
charm=$(grep "charm_build_name" osci.yaml | awk '{print $2}')
echo "renaming ${charm}_*.charm to ${charm}.charm"
echo -n "pwd: "
pwd
ls -al
echo "Removing bad downloaded charm maybe?"
if [[ -e "${charm}.charm" ]];
then
rm "${charm}.charm"
fi
echo "Renaming charm here."
mv ${charm}_*.charm ${charm}.charm

0
templates/.gitkeep Normal file

1
templates/dummyfile Normal file

@ -0,0 +1 @@
Dummy file to ensure build picks up templates dir

@ -13,11 +13,6 @@ setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb
requests>=2.18.4
# Newer mock seems to have some syntax which is newer than python3.5 (e.g.
# f'{something}'
mock>=1.2,<4.0.0; python_version < '3.6'
mock>=1.2; python_version >= '3.6'
stestr>=2.2.0
# Dependency of stestr. Workaround for

@ -54,7 +54,7 @@ applications:
openstack-origin: *openstack-origin
to:
- '3'
channel: latest/edge
channel: yoga/edge
rabbitmq-server:
charm: ch:rabbitmq-server
@ -73,7 +73,7 @@ applications:
- '5'
- '6'
- '7'
channel: latest/edge
channel: quincy/edge
ceph-osd:
charm: ch:ceph-osd
@ -87,7 +87,7 @@ applications:
- '8'
- '9'
- '10'
channel: latest/edge
channel: quincy/edge
cinder:
charm: ch:cinder
@ -98,10 +98,10 @@ applications:
openstack-origin: *openstack-origin
to:
- '11'
channel: latest/edge
channel: yoga/edge
cinder-backup:
charm: ../../../cinder-backup
charm: ../../cinder-backup.charm
options:
ceph-osd-replication-count: 3
@ -109,21 +109,21 @@ applications:
charm: ch:cinder-ceph
options:
ceph-osd-replication-count: 3
channel: latest/edge
channel: yoga/edge
glance:
charm: ch:glance
num_units: 1
to:
- '12'
channel: latest/edge
channel: yoga/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
to:
- '13'
channel: latest/edge
channel: yoga/edge
relations:

@ -54,7 +54,7 @@ applications:
openstack-origin: *openstack-origin
to:
- '3'
channel: latest/edge
channel: yoga/edge
rabbitmq-server:
charm: ch:rabbitmq-server
@ -73,7 +73,7 @@ applications:
- '5'
- '6'
- '7'
channel: latest/edge
channel: quincy/edge
ceph-osd:
charm: ch:ceph-osd
@ -87,7 +87,7 @@ applications:
- '8'
- '9'
- '10'
channel: latest/edge
channel: quincy/edge
cinder:
charm: ch:cinder
@ -98,10 +98,10 @@ applications:
openstack-origin: *openstack-origin
to:
- '11'
channel: latest/edge
channel: yoga/edge
cinder-backup:
charm: ../../../cinder-backup
charm: ../../cinder-backup.charm
options:
ceph-osd-replication-count: 3
@ -109,21 +109,21 @@ applications:
charm: ch:cinder-ceph
options:
ceph-osd-replication-count: 3
channel: latest/edge
channel: yoga/edge
glance:
charm: ch:glance
num_units: 1
to:
- '12'
channel: latest/edge
channel: yoga/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
to:
- '13'
channel: latest/edge
channel: yoga/edge
relations:

@ -54,7 +54,7 @@ applications:
openstack-origin: *openstack-origin
to:
- '3'
channel: latest/edge
channel: yoga/edge
rabbitmq-server:
charm: ch:rabbitmq-server
@ -73,7 +73,7 @@ applications:
- '5'
- '6'
- '7'
channel: latest/edge
channel: quincy/edge
ceph-osd:
charm: ch:ceph-osd
@ -87,7 +87,7 @@ applications:
- '8'
- '9'
- '10'
channel: latest/edge
channel: quincy/edge
cinder:
charm: ch:cinder
@ -98,10 +98,10 @@ applications:
openstack-origin: *openstack-origin
to:
- '11'
channel: latest/edge
channel: yoga/edge
cinder-backup:
charm: ../../../cinder-backup
charm: ../../cinder-backup.charm
options:
ceph-osd-replication-count: 3
@ -109,21 +109,21 @@ applications:
charm: ch:cinder-ceph
options:
ceph-osd-replication-count: 3
channel: latest/edge
channel: yoga/edge
glance:
charm: ch:glance
num_units: 1
to:
- '12'
channel: latest/edge
channel: yoga/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
to:
- '13'
channel: latest/edge
channel: yoga/edge
relations:

@ -54,7 +54,7 @@ applications:
openstack-origin: *openstack-origin
to:
- '3'
channel: latest/edge
channel: yoga/edge
rabbitmq-server:
charm: ch:rabbitmq-server
@ -73,7 +73,7 @@ applications:
- '5'
- '6'
- '7'
channel: latest/edge
channel: quincy/edge
ceph-osd:
charm: ch:ceph-osd
@ -87,7 +87,7 @@ applications:
- '8'
- '9'
- '10'
channel: latest/edge
channel: quincy/edge
cinder:
charm: ch:cinder
@ -98,10 +98,10 @@ applications:
openstack-origin: *openstack-origin
to:
- '11'
channel: latest/edge
channel: yoga/edge
cinder-backup:
charm: ../../../cinder-backup
charm: ../../cinder-backup.charm
options:
ceph-osd-replication-count: 3
@ -109,21 +109,21 @@ applications:
charm: ch:cinder-ceph
options:
ceph-osd-replication-count: 3
channel: latest/edge
channel: yoga/edge
glance:
charm: ch:glance
num_units: 1
to:
- '12'
channel: latest/edge
channel: yoga/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
to:
- '13'
channel: latest/edge
channel: yoga/edge
relations:

12
tox.ini

@ -37,10 +37,20 @@ setenv = VIRTUAL_ENV={envdir}
install_command =
{toxinidir}/pip.sh install {opts} {packages}
commands = stestr run --slowest {posargs}
allowlist_externals = juju
allowlist_externals =
charmcraft
rename.sh
passenv = HOME TERM CS_* OS_* TEST_*
deps = -r{toxinidir}/test-requirements.txt
[testenv:build]
basepython = python3
deps = -r{toxinidir}/build-requirements.txt
commands =
charmcraft clean
charmcraft -v build
{toxinidir}/rename.sh
[testenv:py35]
basepython = python3.5
deps = -r{toxinidir}/requirements.txt