← Back to issue list

Multi-base charm cannot be uploaded to GitHub Actions artifact

View original Github issue

Metadata

Project
charmcraft
Number
#2057
Type
issue
State
closed
Author
carlcsaposs-canonical
Labels
—
Created
Updated
Closed

Current evaluation

Closed after @lengau approved replacing ':' with '-' in charm filenames; CRAFT-3849 tracked the request, but no resolving PR or commit was linked.

Resolution: closed stale

Reason: No implementation is evidenced after @lengau commented that a quick s/:/-/ filename change was acceptable and CRAFT-3849 was created. The issue was closed without a linked resolving PR, commit, or closing completion comment.

Evaluated by: mr-cal-bot

No scores available.

Issue body

### Bug Description Packing a charm with ```yaml platforms: ubuntu@22.04:amd64: ``` creates a *.charm file that contains the `:` character (e.g. `mysql-router-k8s_ubuntu@22.04:amd64.charm`), which cannot be uploaded as a GitHub Actions artifact or to a GitHub release (example: https://github.com/canonical/mysql-router-k8s-operator/actions/runs/12428934287/job/34701456930?pr=341#step:13:15) Request: rename the *.charm file so that it does not contain the `:` character ### To Reproduce ``` git clone https://github.com/canonical/mysql-router-k8s-operator cd mysql-router-k8s-operator git checkout 6c459ad4d9979942e50693d9394c59330c7138c3 charmcraft pack -v ``` ### Environment Ubuntu 22.04 ``` $ snap list Name Version Rev Tracking Publisher Notes charmcraft 3.2.2.post133+g455880a4 5682 3.x/edge canonical✓ classic core18 20240920 2846 latest/stable canonical✓ base core20 20240911 2434 latest/stable canonical✓ base core22 20241119 1722 latest/stable canonical✓ base core24 20240920 609 latest/stable canonical✓ base juju 3.6.1 29241 3/stable canonical✓ - lxd 5.0.4-497fe1e 31333 5.0/stable/… canonical✓ - microk8s v1.29.11 7435 1.29-strict/stable canonical✓ - snapcraft 8.5.1 13181 latest/stable canonical✓ classic snapd 2.66.1 23258 latest/stable canonical✓ snapd ``` ### charmcraft.yaml ```yaml # Copyright 2022 Canonical Ltd. # See LICENSE file for licensing details. type: charm platforms: ubuntu@22.04:amd64: ubuntu@22.04:arm64: # 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: | python3 -m pip install --upgrade pip==24.3.1 # renovate: charmcraft-pip-latest curl -sSL https://install.python-poetry.org | python3 - --version 1.8.4 # 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-snaps: - rustup build-packages: - libffi-dev - libssl-dev - pkg-config override-build: | rustup default stable 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 files: plugin: dump source: . build-packages: - git override-build: | # Workaround to add unique identifier (git hash) to charm version while specification # DA053 - Charm versioning # (https://docs.google.com/document/d/1Jv1jhWLl8ejK3iJn7Q3VbCIM9GIhp8926bgXpdtx-Sg/edit?pli=1) # is pending review. 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 prime: - LICENSE - charm_version - workload_version - scripts - templates ``` ### Relevant log output ```shell Packing charm mysql-router-k8s_ubuntu@22.04:amd64.charm Packed mysql-router-k8s_ubuntu@22.04:amd64.charm ```

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed stale Closed after @lengau approved replacing ':' with '-' in charm filenames; CRAFT-3849 tracked the request, but no resolving PR or commit was linked.
stealth/space-bunny-alpha — closed resolved Fixed in charmcraft#2060 via commit 40a302bb by replacing ':' with '-' in multi-base charm filenames, allowing GitHub artifact uploads.
stealth/space-bunny-alpha — closed resolved Fixed in #2060 (commit 40a302bb) by replacing ':' with '-' in multi-base charm filenames, enabling GitHub artifact uploads and matching Charmcraft 2 naming conventions.
stealth/space-bunny-alpha — closed resolved Merged PR canonical/charmcraft#2060 (commit 40a302bb) fixed uploads by replacing colons in multi-base charm filenames with hyphens.
qwen3.6-35b-a3b-mtp-q6 — — Closed after maintainer agreed to replace colons with hyphens in generated charm filenames, resolving GitHub Actions upload failures and aligning with charmcraft 2 conventions.
qwen/qwen3.6-35b-a3b — — Fixed by replacing colons with hyphens in generated charm filenames, aligning with charmcraft v2 naming and resolving GitHub Actions upload failures.
qwen/qwen3.6-35b-a3b — — Closed following a suggestion to replace colons with hyphens in generated charm filenames, resolving GitHub Actions upload failures.
qwen3.6-35b-a3b-mtp-q6 — — Closed with a proposed fix to replace colons with hyphens in generated filenames, resolving GitHub Actions upload failures.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#2060 fix: replace colons with hyphens in charm names charmcraft merged Merged PR #2060 via commit 40a302bb, replacing colons with hyphens in multi-base charm filenames and fixing GitHub Actions artifact uploads reported in #2057.
79%