From 53efe030af793f755d8f69a0b3b839c0e1c90a83 Mon Sep 17 00:00:00 2001 From: Iman Enami Date: Mon, 14 Sep 2026 09:50:45 +0400 Subject: [PATCH 1/2] feat: add CHARMCRAFT_EXPERIMENTAL_MONOREPO support --- .github/workflows/build_charm.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build_charm.yaml b/.github/workflows/build_charm.yaml index cc2c57fc..e109ca3a 100644 --- a/.github/workflows/build_charm.yaml +++ b/.github/workflows/build_charm.yaml @@ -18,6 +18,10 @@ on: description: Relative path to charm directory from repository directory default: . type: string + monorepo: + description: Whether the charm is using the charmcraft monorepo feature + default: false + type: boolean charmcraft-snap-revisions: description: | JSON string with type dict[str, str] of architecture to charmcraft snap revision @@ -156,6 +160,7 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} VAR_NO_CACHE_ARG: ${{ case(inputs.cache, '', '--command-name=charmcraft') }} VAR_PLATFORM: ${{ matrix.platform.name }} + CHARMCRAFT_EXPERIMENTAL_MONOREPO: ${{ case(inputs.monorepo, '1', '0') }} - name: Charmcraft logs if: ${{ success() || (failure() && steps.pack.outcome == 'failure') }} run: cat ~/.local/state/charmcraft/log/* From 98aeada797bd0d90f6e6192978cc9c0f6f5e8e69 Mon Sep 17 00:00:00 2001 From: Iman Enami Date: Mon, 14 Sep 2026 13:50:18 +0400 Subject: [PATCH 2/2] fix: use the right binary for pack --- .github/workflows/build_charm.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_charm.yaml b/.github/workflows/build_charm.yaml index e109ca3a..aa62c376 100644 --- a/.github/workflows/build_charm.yaml +++ b/.github/workflows/build_charm.yaml @@ -154,12 +154,13 @@ jobs: - name: Pack charm id: pack working-directory: ${{ inputs.path-to-charm-directory }} - run: sudo --user "$USER" --preserve-env --preserve-env=PATH -- env -- charmcraftlocal pack -v ${VAR_NO_CACHE_ARG:+"${VAR_NO_CACHE_ARG}"} --platform="${VAR_PLATFORM}" + run: sudo --user "$USER" --preserve-env --preserve-env=PATH -- env -- "$CHARMCRAFT_BIN" pack -v ${VAR_NO_CACHE_ARG:+"${VAR_NO_CACHE_ARG}"} --platform="${VAR_PLATFORM}" env: # Used by charmcraftcache (to avoid GitHub API rate limit) GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - VAR_NO_CACHE_ARG: ${{ case(inputs.cache, '', '--command-name=charmcraft') }} + VAR_NO_CACHE_ARG: ${{ case(inputs.cache || inputs.monorepo, '', '--command-name=charmcraft') }} VAR_PLATFORM: ${{ matrix.platform.name }} + CHARMCRAFT_BIN: ${{ case(inputs.monorepo, 'charmcraft', 'charmcraftlocal') }} CHARMCRAFT_EXPERIMENTAL_MONOREPO: ${{ case(inputs.monorepo, '1', '0') }} - name: Charmcraft logs if: ${{ success() || (failure() && steps.pack.outcome == 'failure') }}