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: I76cc7c4c782d60f3558df6b9f96c513eff16331b
This commit is contained in:
Alex Kavanagh 2022-02-15 15:06:41 +00:00 committed by Corey Bryant
parent 521f4990d3
commit 4df5c728c5
10 changed files with 88 additions and 56 deletions

7
build-requirements.txt Normal file
View 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.

View File

@ -6,14 +6,13 @@ parts:
source: . source: .
prime: prime:
- actions/* - actions/*
- charmhelpers/*
- files/* - files/*
- hooks/* - hooks/*
- lib/* - lib/*
- templates/* - templates/*
- actions.yaml
- config.yaml - config.yaml
- copyright - copyright
- hardening.yaml
- icon.svg - icon.svg
- LICENSE - LICENSE
- Makefile - Makefile

View File

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

13
rename.sh Executable file
View 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

View File

@ -13,11 +13,6 @@ setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb
requests>=2.18.4 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 stestr>=2.2.0
# Dependency of stestr. Workaround for # Dependency of stestr. Workaround for

View File

@ -94,7 +94,7 @@ applications:
- '5' - '5'
- '6' - '6'
- '7' - '7'
channel: latest/edge channel: quincy/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -105,7 +105,7 @@ applications:
- '8' - '8'
- '9' - '9'
- '10' - '10'
channel: latest/edge channel: quincy/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -114,7 +114,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: yoga/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -123,7 +123,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '12' - '12'
channel: latest/edge channel: yoga/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
@ -133,7 +133,7 @@ applications:
network-manager: Neutron network-manager: Neutron
to: to:
- '13' - '13'
channel: latest/edge channel: yoga/edge
nova-compute: nova-compute:
charm: ch:nova-compute charm: ch:nova-compute
@ -142,7 +142,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '14' - '14'
channel: latest/edge channel: yoga/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -154,7 +154,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '15' - '15'
channel: latest/edge channel: yoga/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -164,11 +164,11 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '16' - '16'
channel: latest/edge channel: yoga/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: yoga/edge
ceilometer: ceilometer:
charm: ch:ceilometer charm: ch:ceilometer
@ -180,7 +180,7 @@ applications:
polling-batch-size: 0 polling-batch-size: 0
to: to:
- '17' - '17'
channel: latest/edge channel: yoga/edge
gnocchi: gnocchi:
charm: ch:gnocchi charm: ch:gnocchi
@ -189,7 +189,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '18' - '18'
channel: latest/edge channel: yoga/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -199,9 +199,10 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '19' - '19'
channel: latest/edge channel: yoga/edge
ceilometer-agent: ceilometer-agent:
charm: ../../ceilometer-agent.charm
options: options:
polling-interval: 10 polling-interval: 10
# NOTE(lourot): we normally set this to `true` in other bundles in order # NOTE(lourot): we normally set this to `true` in other bundles in order

View File

@ -94,7 +94,7 @@ applications:
- '5' - '5'
- '6' - '6'
- '7' - '7'
channel: latest/edge channel: quincy/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -105,7 +105,7 @@ applications:
- '8' - '8'
- '9' - '9'
- '10' - '10'
channel: latest/edge channel: quincy/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -114,7 +114,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: yoga/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -123,7 +123,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '12' - '12'
channel: latest/edge channel: yoga/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
@ -133,7 +133,7 @@ applications:
network-manager: Neutron network-manager: Neutron
to: to:
- '13' - '13'
channel: latest/edge channel: yoga/edge
nova-compute: nova-compute:
charm: ch:nova-compute charm: ch:nova-compute
@ -142,7 +142,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '14' - '14'
channel: latest/edge channel: yoga/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -154,7 +154,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '15' - '15'
channel: latest/edge channel: yoga/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -164,11 +164,11 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '16' - '16'
channel: latest/edge channel: yoga/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: yoga/edge
ceilometer: ceilometer:
charm: ch:ceilometer charm: ch:ceilometer
@ -180,7 +180,7 @@ applications:
polling-batch-size: 0 polling-batch-size: 0
to: to:
- '17' - '17'
channel: latest/edge channel: yoga/edge
gnocchi: gnocchi:
charm: ch:gnocchi charm: ch:gnocchi
@ -189,7 +189,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '18' - '18'
channel: latest/edge channel: yoga/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -199,9 +199,10 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '19' - '19'
channel: latest/edge channel: yoga/edge
ceilometer-agent: ceilometer-agent:
charm: ../../ceilometer-agent.charm
options: options:
polling-interval: 10 polling-interval: 10
# NOTE(lourot): we normally set this to `true` in other bundles in order # NOTE(lourot): we normally set this to `true` in other bundles in order

View File

@ -94,7 +94,7 @@ applications:
- '5' - '5'
- '6' - '6'
- '7' - '7'
channel: latest/edge channel: quincy/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -105,7 +105,7 @@ applications:
- '8' - '8'
- '9' - '9'
- '10' - '10'
channel: latest/edge channel: quincy/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -114,7 +114,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: yoga/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -123,7 +123,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '12' - '12'
channel: latest/edge channel: yoga/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
@ -133,7 +133,7 @@ applications:
network-manager: Neutron network-manager: Neutron
to: to:
- '13' - '13'
channel: latest/edge channel: yoga/edge
nova-compute: nova-compute:
charm: ch:nova-compute charm: ch:nova-compute
@ -142,7 +142,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '14' - '14'
channel: latest/edge channel: yoga/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -154,7 +154,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '15' - '15'
channel: latest/edge channel: yoga/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -164,11 +164,11 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '16' - '16'
channel: latest/edge channel: yoga/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: yoga/edge
ceilometer: ceilometer:
charm: ch:ceilometer charm: ch:ceilometer
@ -180,7 +180,7 @@ applications:
polling-batch-size: 0 polling-batch-size: 0
to: to:
- '17' - '17'
channel: latest/edge channel: yoga/edge
gnocchi: gnocchi:
charm: ch:gnocchi charm: ch:gnocchi
@ -189,7 +189,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '18' - '18'
channel: latest/edge channel: yoga/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -199,9 +199,10 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '19' - '19'
channel: latest/edge channel: yoga/edge
ceilometer-agent: ceilometer-agent:
charm: ../../ceilometer-agent.charm
options: options:
polling-interval: 10 polling-interval: 10
# NOTE(lourot): we normally set this to `true` in other bundles in order # NOTE(lourot): we normally set this to `true` in other bundles in order

View File

@ -94,7 +94,7 @@ applications:
- '5' - '5'
- '6' - '6'
- '7' - '7'
channel: latest/edge channel: quincy/edge
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon
@ -105,7 +105,7 @@ applications:
- '8' - '8'
- '9' - '9'
- '10' - '10'
channel: latest/edge channel: quincy/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
@ -114,7 +114,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '11' - '11'
channel: latest/edge channel: yoga/edge
glance: glance:
charm: ch:glance charm: ch:glance
@ -123,7 +123,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '12' - '12'
channel: latest/edge channel: yoga/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
@ -133,7 +133,7 @@ applications:
network-manager: Neutron network-manager: Neutron
to: to:
- '13' - '13'
channel: latest/edge channel: yoga/edge
nova-compute: nova-compute:
charm: ch:nova-compute charm: ch:nova-compute
@ -142,7 +142,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '14' - '14'
channel: latest/edge channel: yoga/edge
neutron-api: neutron-api:
charm: ch:neutron-api charm: ch:neutron-api
@ -154,7 +154,7 @@ applications:
neutron-security-groups: true neutron-security-groups: true
to: to:
- '15' - '15'
channel: latest/edge channel: yoga/edge
neutron-gateway: neutron-gateway:
charm: ch:neutron-gateway charm: ch:neutron-gateway
@ -164,11 +164,11 @@ applications:
bridge-mappings: physnet1:br-ex bridge-mappings: physnet1:br-ex
to: to:
- '16' - '16'
channel: latest/edge channel: yoga/edge
neutron-openvswitch: neutron-openvswitch:
charm: ch:neutron-openvswitch charm: ch:neutron-openvswitch
channel: latest/edge channel: yoga/edge
ceilometer: ceilometer:
charm: ch:ceilometer charm: ch:ceilometer
@ -180,7 +180,7 @@ applications:
polling-batch-size: 0 polling-batch-size: 0
to: to:
- '17' - '17'
channel: latest/edge channel: yoga/edge
gnocchi: gnocchi:
charm: ch:gnocchi charm: ch:gnocchi
@ -189,7 +189,7 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '18' - '18'
channel: latest/edge channel: yoga/edge
placement: placement:
charm: ch:placement charm: ch:placement
@ -199,9 +199,10 @@ applications:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
to: to:
- '19' - '19'
channel: latest/edge channel: yoga/edge
ceilometer-agent: ceilometer-agent:
charm: ../../ceilometer-agent.charm
options: options:
polling-interval: 10 polling-interval: 10
# NOTE(lourot): we normally set this to `true` in other bundles in order # NOTE(lourot): we normally set this to `true` in other bundles in order

12
tox.ini
View File

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