diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index acec4d089..0b6949455 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,7 +16,7 @@ on: jobs: lint: name: Lint - uses: canonical/data-platform-workflows/.github/workflows/lint.yaml@v26.0.0 + uses: canonical/data-platform-workflows/.github/workflows/lint.yaml@v24.0.6 unit-test: name: Unit test charm @@ -136,23 +136,33 @@ jobs: path: - . - ./tests/integration/relations/opensearch_provider/application-charm/ - uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v26.0.0 + uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v24.0.6 with: - cache: false # TODO: will change to `true` before merge - charmcraft-snap-channel: latest/beta/data-platform # TODO: remove after charmcraft 3.3 stable release path-to-charm-directory: ${{ matrix.path }} + cache: false integration-test: - name: Integration test charm + strategy: + fail-fast: false + matrix: + juju: + # This runs on all runs + - agent: 3.5.3 # renovate: juju-agent-pin-minor + allure_report: true + # This runs only on scheduled runs, DPW 21 specifics (scheduled + 3.6/X) + - snap_channel: 3.6/beta + allure_report: false + name: Integration test charm | ${{ matrix.juju.agent || matrix.juju.snap_channel }} needs: - lint - unit-test - build - uses: canonical/data-platform-workflows/.github/workflows/integration_test_charm.yaml@v26.0.0 + uses: canonical/data-platform-workflows/.github/workflows/integration_test_charm.yaml@v24.0.6 with: - juju-agent-version: 3.6.1 # renovate: juju-agent-pin-minor - _beta_allure_report: true - artifact-prefix: packed-charm-cache-false # TODO: revert cache + juju-agent-version: ${{ matrix.juju.agent }} + juju-snap-channel: ${{ matrix.juju.snap_channel }} + _beta_allure_report: ${{ matrix.juju.allure_report }} + artifact-prefix: packed-charm-cache-false cloud: lxd secrets: # GitHub appears to redact each line of a multi-line secret diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 83046ac3e..3a20a0081 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,17 +34,14 @@ jobs: build: name: Build charm - uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v26.0.0 - with: - charmcraft-snap-channel: latest/beta/data-platform # TODO: remove after charmcraft 3.3 stable release + uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v24.0.6 release: name: Release charm needs: - build - uses: canonical/data-platform-workflows/.github/workflows/release_charm.yaml@v26.0.0 + uses: canonical/data-platform-workflows/.github/workflows/release_charm.yaml@v24.0.6 with: - charmcraft-snap-channel: latest/beta/data-platform # TODO: remove after charmcraft 3.3 stable release channel: 2/edge artifact-prefix: ${{ needs.build.outputs.artifact-prefix }} secrets: diff --git a/.github/workflows/sync_docs.yaml b/.github/workflows/sync_docs.yaml index 9fa3e581a..b346c2b84 100644 --- a/.github/workflows/sync_docs.yaml +++ b/.github/workflows/sync_docs.yaml @@ -10,7 +10,7 @@ on: jobs: sync-docs: name: Sync docs from Discourse - uses: canonical/data-platform-workflows/.github/workflows/sync_docs.yaml@v26.0.0 + uses: canonical/data-platform-workflows/.github/workflows/sync_docs.yaml@v24.0.6 with: reviewers: a-velasco permissions: diff --git a/charmcraft.yaml b/charmcraft.yaml index 8b8ad0f88..023889439 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -1,84 +1,26 @@ -# Copyright 2022 Canonical Ltd. +# Copyright 2023 Canonical Ltd. # See LICENSE file for licensing details. type: charm -platforms: - ubuntu@22.04:amd64: -# Files implicitly created by charmcraft without a part: -# - dispatch (https://github.com/canonical/charmcraft/pull/1898) -# - manifest.yaml -# (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/services/package.py#L259) -# Files implicitly copied/"primed" by charmcraft without a part: -# - actions.yaml, config.yaml, metadata.yaml -# (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/services/package.py#L290-L293 -# https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/services/package.py#L156-L157) -parts: - # "poetry-deps" part name is a magic constant - # https://github.com/canonical/craft-parts/pull/901 - poetry-deps: - plugin: nil - build-packages: - - curl - override-build: | - # Use environment variable instead of `--break-system-packages` to avoid failing on older - # versions of pip that do not recognize `--break-system-packages` - # `--user` needed (in addition to `--break-system-packages`) for Ubuntu >=24.04 - PIP_BREAK_SYSTEM_PACKAGES=true python3 -m pip install --user --upgrade pip==24.3.1 # renovate: charmcraft-pip-latest - - # Use uv to install poetry so that a newer version of Python can be installed if needed by poetry - curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.15/uv-installer.sh | sh # renovate: charmcraft-uv-latest - # poetry 2.0.0 requires Python >=3.9 - if ! "$HOME/.local/bin/uv" python find '>=3.9' - then - # Use first Python version that is >=3.9 and available in an Ubuntu LTS - # (to reduce the number of Python versions we use) - "$HOME/.local/bin/uv" python install 3.10.12 # renovate: charmcraft-python-ubuntu-22.04 - fi - "$HOME/.local/bin/uv" tool install --no-python-downloads --python '>=3.9' poetry==2.0.0 --with poetry-plugin-export==1.8.0 # renovate: charmcraft-poetry-latest - - ln -sf "$HOME/.local/bin/poetry" /usr/local/bin/poetry - # "charm-poetry" part name is arbitrary; use for consistency - # Avoid using "charm" part name since that has special meaning to charmcraft - charm-poetry: - # By default, the `poetry` plugin creates/primes these directories: - # - lib, src - # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_poetry.py#L76-L78) - # - venv - # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_poetry.py#L95 - # https://github.com/canonical/craft-parts/blob/afb0d652eb330b6aaad4f40fbd6e5357d358de47/craft_parts/plugins/base.py#L270) - plugin: poetry - source: . - after: - - poetry-deps - poetry-export-extra-args: ['--only', 'main,charm-libs'] - build-packages: - - libffi-dev # Needed to build Python dependencies with Rust from source - - libssl-dev # Needed to build Python dependencies with Rust from source - - pkg-config # Needed to build Python dependencies with Rust from source - override-build: | - # Workaround for https://github.com/canonical/charmcraft/issues/2068 - # rustup used to install rustc and cargo, which are needed to build Python dependencies with Rust from source - if [[ "$CRAFT_PLATFORM" == ubuntu@20.04:* || "$CRAFT_PLATFORM" == ubuntu@22.04:* ]] - then - snap install rustup --classic - else - apt-get install rustup -y - fi - - # If Ubuntu version < 24.04, rustup was installed from snap instead of from the Ubuntu - # archive—which means the rustup version could be updated at any time. Print rustup version - # to build log to make changes to the snap's rustup version easier to track - rustup --version +# Use upcoming ST124 syntax +# To pack this charm, a temporary compatibility wrapper https://github.com/canonical/charmcraftst124 +# is required until ST124 support is added to charmcraft +# (ST124 syntax is needed to enable multi-base charms with Ubuntu 24.04. We use ST124 syntax across +# all of our charms [even those that aren't multi base] for consistency and to simplify CI/CD +# maintenance & tooling) +# platforms: +# ubuntu@22.04:amd64: +# # TODO: enable after charmcraft 3 migration +# ubuntu@24.04:amd64: +bases: + - build-on: + - name: "ubuntu" + channel: "22.04" + run-on: + - name: "ubuntu" + channel: "22.04" - # rpds-py (Python package) >=0.19.0 requires rustc >=1.76, which is not available in the - # Ubuntu 22.04 archive. Install rustc and cargo using rustup instead of the Ubuntu archive - rustup set profile minimal - rustup default 1.83.0 # renovate: charmcraft-rust-latest - - craftctl default - # Include requirements.txt in *.charm artifact for easier debugging - cp requirements.txt "$CRAFT_PART_INSTALL/requirements.txt" - # "files" part name is arbitrary; use for consistency +parts: files: plugin: dump source: . @@ -92,7 +34,32 @@ parts: python3 -c 'import pathlib; import shutil; import subprocess; git_hash=subprocess.run(["git", "describe", "--always", "--dirty"], capture_output=True, check=True, encoding="utf-8").stdout; file = pathlib.Path("charm_version"); shutil.copy(file, pathlib.Path("charm_version.backup")); version = file.read_text().strip(); file.write_text(f"{version}+{git_hash}")' craftctl default + stage: + # Exclude requirements.txt file during staging + # Workaround for https://github.com/canonical/charmcraft/issues/1389 on charmcraft 2 + - -requirements.txt prime: - - LICENSE - charm_version - workload_version + charm: + build-snaps: + - rustup + build-packages: + - libffi-dev + - libssl-dev + - pkg-config + override-build: | + rustup default stable + + # Convert subset of poetry.lock to requirements.txt + curl -sSL https://install.python-poetry.org | python3 - + /root/.local/bin/poetry self add poetry-plugin-export + /root/.local/bin/poetry export --only main,charm-libs --output requirements.txt + + craftctl default + stage: + # Exclude charm_version file during staging + - -charm_version + charm-strict-dependencies: true + charm-requirements: [requirements.txt] + charm-entrypoint: src/charm.py diff --git a/poetry.lock b/poetry.lock index 543e7c9c5..900c3d7b2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -33,8 +33,8 @@ pytest = "*" [package.source] type = "git" url = "https://github.com/canonical/data-platform-workflows" -reference = "v26.0.0" -resolved_reference = "92d0a9f28a22c57b5965866c22f65b5021d3b115" +reference = "v24.0.6" +resolved_reference = "11c673f692893a15d15ee63469420e91f91f8a95" subdirectory = "python/pytest_plugins/allure_pytest_collection_report" [[package]] @@ -1760,8 +1760,8 @@ develop = false [package.source] type = "git" url = "https://github.com/canonical/data-platform-workflows" -reference = "v26.0.0" -resolved_reference = "92d0a9f28a22c57b5965866c22f65b5021d3b115" +reference = "v24.0.6" +resolved_reference = "11c673f692893a15d15ee63469420e91f91f8a95" subdirectory = "python/pytest_plugins/github_secrets" [[package]] @@ -1781,8 +1781,8 @@ pytest = "*" [package.source] type = "git" url = "https://github.com/canonical/data-platform-workflows" -reference = "v26.0.0" -resolved_reference = "92d0a9f28a22c57b5965866c22f65b5021d3b115" +reference = "v24.0.6" +resolved_reference = "11c673f692893a15d15ee63469420e91f91f8a95" subdirectory = "python/pytest_plugins/microceph" [[package]] @@ -1821,8 +1821,8 @@ pyyaml = "*" [package.source] type = "git" url = "https://github.com/canonical/data-platform-workflows" -reference = "v26.0.0" -resolved_reference = "92d0a9f28a22c57b5965866c22f65b5021d3b115" +reference = "v24.0.6" +resolved_reference = "11c673f692893a15d15ee63469420e91f91f8a95" subdirectory = "python/pytest_plugins/pytest_operator_cache" [[package]] @@ -1841,8 +1841,8 @@ pytest = "*" [package.source] type = "git" url = "https://github.com/canonical/data-platform-workflows" -reference = "v26.0.0" -resolved_reference = "92d0a9f28a22c57b5965866c22f65b5021d3b115" +reference = "v24.0.6" +resolved_reference = "11c673f692893a15d15ee63469420e91f91f8a95" subdirectory = "python/pytest_plugins/pytest_operator_groups" [[package]] @@ -2174,7 +2174,6 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd"}, - {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da"}, {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6"}, @@ -2183,7 +2182,6 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2"}, - {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4"}, {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632"}, @@ -2192,7 +2190,6 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680"}, - {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5"}, {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a"}, @@ -2201,7 +2198,6 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1"}, - {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6"}, {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987"}, @@ -2210,7 +2206,6 @@ files = [ {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d85252669dc32f98ebcd5d36768f5d4faeaeaa2d655ac0473be490ecdae3c285"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e143ada795c341b56de9418c58d028989093ee611aa27ffb9b7f609c00d813ed"}, - {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2c59aa6170b990d8d2719323e628aaf36f3bfbc1c26279c0eeeb24d05d2d11c7"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win32.whl", hash = "sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12"}, {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win_amd64.whl", hash = "sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b"}, {file = "ruamel.yaml.clib-0.2.12.tar.gz", hash = "sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f"}, @@ -2571,4 +2566,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = "^3.10" -content-hash = "842feca26fc63790a429bbda7b7b30402be56d201562a4d4af9a39d1faf40dbc" +content-hash = "cc83644ac47046737c470133ae51ea8f5ec0ba8cfc8b6e8582141a7ed0ae6ac0" diff --git a/pyproject.toml b/pyproject.toml index ffdae4b25..450f997ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,12 +68,12 @@ responses = "^0.25.3" [tool.poetry.group.integration.dependencies] boto3 = "^1.34.135" pytest = "^8.2.2" -pytest-github-secrets = {git = "https://github.com/canonical/data-platform-workflows", tag = "v26.0.0", subdirectory = "python/pytest_plugins/github_secrets"} +pytest-github-secrets = {git = "https://github.com/canonical/data-platform-workflows", tag = "v24.0.6", subdirectory = "python/pytest_plugins/github_secrets"} pytest-asyncio = "^0.21.2" pytest-operator = "^0.35.0" -pytest-operator-cache = {git = "https://github.com/canonical/data-platform-workflows", tag = "v26.0.0", subdirectory = "python/pytest_plugins/pytest_operator_cache"} -pytest-operator-groups = {git = "https://github.com/canonical/data-platform-workflows", tag = "v26.0.0", subdirectory = "python/pytest_plugins/pytest_operator_groups"} -pytest-microceph = {git = "https://github.com/canonical/data-platform-workflows", tag = "v26.0.0", subdirectory = "python/pytest_plugins/microceph"} +pytest-operator-cache = {git = "https://github.com/canonical/data-platform-workflows", tag = "v24.0.6", subdirectory = "python/pytest_plugins/pytest_operator_cache"} +pytest-operator-groups = {git = "https://github.com/canonical/data-platform-workflows", tag = "v24.0.6", subdirectory = "python/pytest_plugins/pytest_operator_groups"} +pytest-microceph = {git = "https://github.com/canonical/data-platform-workflows", tag = "v24.0.6", subdirectory = "python/pytest_plugins/microceph"} juju = "==3.6.0" ops = "^2.15" tenacity = "^8.4.2" @@ -82,7 +82,7 @@ urllib3 = "^2.2.2" protobuf = "^5.27.2" opensearch-py = "^2.6.0" allure-pytest = "^2.13.5" -allure-pytest-collection-report = {git = "https://github.com/canonical/data-platform-workflows", tag = "v26.0.0", subdirectory = "python/pytest_plugins/allure_pytest_collection_report"} +allure-pytest-collection-report = {git = "https://github.com/canonical/data-platform-workflows", tag = "v24.0.6", subdirectory = "python/pytest_plugins/allure_pytest_collection_report"} [tool.coverage.run] branch = true diff --git a/tests/integration/relations/opensearch_provider/application-charm/charmcraft.yaml b/tests/integration/relations/opensearch_provider/application-charm/charmcraft.yaml index e7ff5f196..058c842df 100644 --- a/tests/integration/relations/opensearch_provider/application-charm/charmcraft.yaml +++ b/tests/integration/relations/opensearch_provider/application-charm/charmcraft.yaml @@ -1,9 +1,18 @@ -# Copyright 2022 Canonical Ltd. +# Copyright 2024 Canonical Ltd. # See LICENSE file for licensing details. type: charm -platforms: - ubuntu@22.04:amd64: +# platforms: +# ubuntu@22.04:amd64: +bases: + - build-on: + - name: "ubuntu" + channel: "22.04" + run-on: + - name: "ubuntu" + channel: "22.04" + parts: - charm: + my-charm: + source: . plugin: charm