From c1cbacb9c2242233c263d39acfa83fb6d3412dc3 Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Tue, 15 Feb 2022 17:02:41 +0000 Subject: [PATCH] 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: Ifdf20eb653bf5a828a03e120018fa447310f043c --- .gitignore | 1 + build-requirements.txt | 7 +++++++ charmcraft.yaml | 1 + osci.yaml | 4 ++++ rename.sh | 13 +++++++++++++ tests/bundles/focal-xena.yaml | 2 +- tests/bundles/focal-yoga.yaml | 2 +- tests/bundles/impish-xena.yaml | 2 +- tests/bundles/jammy-yoga-cmr-vault.yaml | 2 +- tests/bundles/jammy-yoga.yaml | 2 +- .../overlays/bionic-queens-cmr-vault.yaml.j2 | 1 - tests/bundles/overlays/bionic-vault.yaml.j2 | 1 - tox.ini | 12 +++++++++++- 13 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 build-requirements.txt create mode 100755 rename.sh delete mode 120000 tests/bundles/overlays/bionic-queens-cmr-vault.yaml.j2 delete mode 120000 tests/bundles/overlays/bionic-vault.yaml.j2 diff --git a/.gitignore b/.gitignore index d0cd35ce..c25b0c7f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ tags .tox *.sw[nop] *.pyc +*.charm .unit-state.db .settings .stestr diff --git a/build-requirements.txt b/build-requirements.txt new file mode 100644 index 00000000..b6d2452f --- /dev/null +++ b/build-requirements.txt @@ -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. diff --git a/charmcraft.yaml b/charmcraft.yaml index ba84f314..11d5f7cd 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -6,6 +6,7 @@ parts: source: . prime: - actions/* + - charmhelpers/* - files/* - hooks/* - lib/* diff --git a/osci.yaml b/osci.yaml index f52e25a1..d5816413 100644 --- a/osci.yaml +++ b/osci.yaml @@ -10,6 +10,10 @@ # https://bugs.launchpad.net/charm-openstack-dashboard/+bug/1951644 - jammy-yoga-gr: voting: false + vars: + needs_charm_build: true + charm_build_name: openstack-dashboard + build_type: charmcraft - job: name: jammy-yoga-gr diff --git a/rename.sh b/rename.sh new file mode 100755 index 00000000..d0c35c97 --- /dev/null +++ b/rename.sh @@ -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 diff --git a/tests/bundles/focal-xena.yaml b/tests/bundles/focal-xena.yaml index 4f034fd4..deb5b5e6 100644 --- a/tests/bundles/focal-xena.yaml +++ b/tests/bundles/focal-xena.yaml @@ -49,7 +49,7 @@ applications: channel: latest/edge openstack-dashboard: - charm: ../../../openstack-dashboard + charm: ../../openstack-dashboard.charm num_units: 1 options: openstack-origin: *openstack-origin diff --git a/tests/bundles/focal-yoga.yaml b/tests/bundles/focal-yoga.yaml index 5f620e73..34744503 100644 --- a/tests/bundles/focal-yoga.yaml +++ b/tests/bundles/focal-yoga.yaml @@ -49,7 +49,7 @@ applications: channel: latest/edge openstack-dashboard: - charm: ../../../openstack-dashboard + charm: ../../openstack-dashboard.charm num_units: 1 options: openstack-origin: *openstack-origin diff --git a/tests/bundles/impish-xena.yaml b/tests/bundles/impish-xena.yaml index 8d358dd2..2694ac44 100644 --- a/tests/bundles/impish-xena.yaml +++ b/tests/bundles/impish-xena.yaml @@ -49,7 +49,7 @@ applications: channel: latest/edge openstack-dashboard: - charm: ../../../openstack-dashboard + charm: ../../openstack-dashboard.charm num_units: 1 options: openstack-origin: *openstack-origin diff --git a/tests/bundles/jammy-yoga-cmr-vault.yaml b/tests/bundles/jammy-yoga-cmr-vault.yaml index 2329c636..1acdece8 100644 --- a/tests/bundles/jammy-yoga-cmr-vault.yaml +++ b/tests/bundles/jammy-yoga-cmr-vault.yaml @@ -53,7 +53,7 @@ applications: - '3' channel: latest/edge openstack-dashboard: - charm: ../../../openstack-dashboard + charm: ../../openstack-dashboard.charm num_units: 3 to: - '4' diff --git a/tests/bundles/jammy-yoga.yaml b/tests/bundles/jammy-yoga.yaml index 8d46d77d..84f8cb14 100644 --- a/tests/bundles/jammy-yoga.yaml +++ b/tests/bundles/jammy-yoga.yaml @@ -49,7 +49,7 @@ applications: channel: latest/edge openstack-dashboard: - charm: ../../../openstack-dashboard + charm: ../../openstack-dashboard.charm num_units: 1 options: openstack-origin: *openstack-origin diff --git a/tests/bundles/overlays/bionic-queens-cmr-vault.yaml.j2 b/tests/bundles/overlays/bionic-queens-cmr-vault.yaml.j2 deleted file mode 120000 index 401d7ccf..00000000 --- a/tests/bundles/overlays/bionic-queens-cmr-vault.yaml.j2 +++ /dev/null @@ -1 +0,0 @@ -cmr-vault.yaml.j2 \ No newline at end of file diff --git a/tests/bundles/overlays/bionic-vault.yaml.j2 b/tests/bundles/overlays/bionic-vault.yaml.j2 deleted file mode 120000 index 9fc6e070..00000000 --- a/tests/bundles/overlays/bionic-vault.yaml.j2 +++ /dev/null @@ -1 +0,0 @@ -vault.yaml.j2 \ No newline at end of file diff --git a/tox.ini b/tox.ini index 86d1e904..81fd2492 100644 --- a/tox.ini +++ b/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