From 11af2a75b211831bbb245eb859b9ab962ab1550b Mon Sep 17 00:00:00 2001 From: Daniela Plascencia Date: Thu, 9 Jan 2025 14:05:27 +0100 Subject: [PATCH] ci, tests: pass charm artefacts to deploy and test charms (#640) * ci, tests: pass charm artefacts to deploy and test charms This commit enables the "--charm-path" option to pass .charm artefacts to be deployed and tested at an individual level. This change enables the option to pass pre-built charms to the tests to avoid building them on the same test. It also ensures compatibility with the build_charm.py reusable workflow (from canonical/data-platform-workflows). Fixes: #639 Use single (cached) build for integration tests & release Fix hardcoded path for `platforms` syntax skip: remove duplicated download-charms remove workflow dispatch from release.yaml not needed add description for outputs rename get charm paths job and channel output skip: rename job in needs pin quality checks back to main due to merging https://github.com/canonical/charmed-kubeflow-workflows/pull/95 Use stage instead of prime in charmcraft files part (#658) --- .github/workflows/{integrate.yaml => ci.yaml} | 87 +++++++++++++---- .github/workflows/get-charm-paths.sh | 30 ------ .github/workflows/on_pull_request.yaml | 49 ---------- .github/workflows/on_push.yaml | 28 ------ .github/workflows/promote.yaml | 32 +++++++ .github/workflows/publish.yaml | 94 ------------------- .github/workflows/release.yaml | 53 +++++------ .github/workflows/weekly_ci.yaml | 13 --- charms/kfp-api/charmcraft.yaml | 6 +- charms/kfp-metadata-writer/charmcraft.yaml | 6 +- charms/kfp-persistence/charmcraft.yaml | 6 +- charms/kfp-profile-controller/charmcraft.yaml | 6 +- charms/kfp-schedwf/charmcraft.yaml | 6 +- charms/kfp-ui/charmcraft.yaml | 6 +- charms/kfp-viewer/charmcraft.yaml | 6 +- charms/kfp-viz/charmcraft.yaml | 6 +- 16 files changed, 153 insertions(+), 281 deletions(-) rename .github/workflows/{integrate.yaml => ci.yaml} (69%) delete mode 100644 .github/workflows/get-charm-paths.sh delete mode 100644 .github/workflows/on_pull_request.yaml delete mode 100644 .github/workflows/on_push.yaml create mode 100644 .github/workflows/promote.yaml delete mode 100644 .github/workflows/publish.yaml delete mode 100644 .github/workflows/weekly_ci.yaml diff --git a/.github/workflows/integrate.yaml b/.github/workflows/ci.yaml similarity index 69% rename from .github/workflows/integrate.yaml rename to .github/workflows/ci.yaml index 45150eb5..1e785b69 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/ci.yaml @@ -1,19 +1,25 @@ -# reusable workflow triggered by other actions -name: CI +name: Tests + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true on: + pull_request: + schedule: + - cron: '0 8 * * TUE' + # Triggered on push by .github/workflows/release.yaml workflow_call: - secrets: - CHARMCRAFT_CREDENTIALS: - required: true - inputs: + outputs: artifact-prefix: - description: | - Prefix for charm package GitHub artifact(s) - - Use canonical/data-platform-workflows build_charm.yaml to build the charm(s) - required: true - type: string + description: build_charm.yaml `artifact-prefix` output + value: ${{ jobs.build.outputs.artifact-prefix }} + charm-paths: + description: paths for all charms in this repo + value: ${{ jobs.get-charm-paths-channel.outputs.charm-paths }} + channel: + description: Charmhub channel the charms are released to + value: ${{ jobs.get-charm-paths-channel.outputs.charm-channel }} jobs: lib-check: @@ -29,7 +35,7 @@ jobs: - kfp-ui - kfp-viewer - kfp-viz - uses: canonical/charmed-kubeflow-workflows/.github/workflows/_quality-checks.yaml@kf-6725-use-charmcraft-3.x-edge-check-libs + uses: canonical/charmed-kubeflow-workflows/.github/workflows/_quality-checks.yaml@main secrets: inherit with: charm-path: ./charms/${{ matrix.charm }} @@ -94,9 +100,58 @@ jobs: # So the model's name must be kubeflow # See: https://github.com/kubeflow/kubeflow/issues/6136 model: kubeflow - + + get-charm-paths-channel: + name: Get charm paths and charmhub channel + runs-on: ubuntu-latest + outputs: + charm-paths: ${{ steps.get-charm-paths.outputs.charm-paths }} + charm-channel: ${{ steps.select-channel.outputs.name }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Get paths for all charms in this repo + id: get-charm-paths + uses: canonical/kubeflow-ci/actions/get-charm-paths@main + - name: Select charmhub channel + uses: canonical/charming-actions/channel@2.6.2 + id: select-channel + + build: + strategy: + matrix: + charm: ${{ fromJSON(needs.get-charm-paths-channel.outputs.charm-paths) }} + name: Build charm | ${{ matrix.charm }} + needs: + - get-charm-paths-channel + uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v29.0.0 + with: + charmcraft-snap-channel: latest/candidate # TODO: remove after charmcraft 3.3 stable release + path-to-charm-directory: ${{ matrix.charm }} + + release: + strategy: + matrix: + charm: ${{ fromJSON(needs.get-charm-paths-channel.outputs.charm-paths) }} + name: Release charm to Charmhub branch | ${{ matrix.charm }} + if: ${{ github.event_name == 'pull_request' }} + needs: + - build + uses: canonical/data-platform-workflows/.github/workflows/release_charm.yaml@v29.0.0 + with: + charmcraft-snap-channel: latest/candidate # TODO: remove after charmcraft 3.3 stable release + channel: ${{ needs.get-charm-paths-channel.outputs.charm-channel }} + artifact-prefix: ${{ needs.build.outputs.artifact-prefix }} + path-to-charm-directory: ${{ matrix.charm }} + create-git-tags: false + secrets: + charmhub-token: ${{ secrets.CHARMCRAFT_CREDENTIALS }} + integration: name: Integration tests (microk8s) + needs: + - build runs-on: ubuntu-20.04 strategy: fail-fast: false @@ -134,7 +189,7 @@ jobs: timeout-minutes: 5 uses: actions/download-artifact@v4 with: - pattern: ${{ inputs.artifact-prefix }}-* + pattern: ${{ needs.build.outputs.artifact-prefix }}-* merge-multiple: true - name: Integration tests @@ -143,7 +198,7 @@ jobs: # https://github.com/canonical/kfp-operators/issues/389 juju add-model kubeflow # Pass the path where the charm artefact is downloaded to the tox command - # FIXME: Right now the complete path is half hardcoded to _ubuntu-20.04-amd64.charm + # FIXME: Right now the complete path is half hardcoded to _ubuntu@20.04-amd64.charm # We need to find a better way to dynamically get this value sg snap_microk8s -c "tox -e ${{ matrix.charm }}-integration -- --model kubeflow --charm-path=${{ github.workspace }}/charms/${{ matrix.charm }}/${{ matrix.charm }}_ubuntu@20.04-amd64.charm" diff --git a/.github/workflows/get-charm-paths.sh b/.github/workflows/get-charm-paths.sh deleted file mode 100644 index f3d0cb44..00000000 --- a/.github/workflows/get-charm-paths.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -x - -# Finds the charms in this repo, outputing them as JSON -# Will return one of: -# * the relative paths of the directories listed in `./charms`, if that directory exists -# * "./", if the root directory has a "metadata.yaml" file -# * otherwise, error -# -# Modifed from: https://stackoverflow.com/questions/63517732/github-actions-build-matrix-for-lambda-functions/63736071#63736071 -CHARMS_DIR="./charms" -if [ -d "$CHARMS_DIR" ]; -then - CHARM_PATHS=$(find $CHARMS_DIR -maxdepth 1 -type d -not -path '*/\.*' -not -path "$CHARMS_DIR") -else - if [ -f "./metadata.yaml" ] - then - CHARM_PATHS="./" - else - echo "Cannot find valid charm directories - aborting" - exit 1 - fi -fi - -# Convert output to JSON string format -# { charm_paths: [...] } -CHARM_PATHS_LIST=$(echo "$CHARM_PATHS" | jq -c --slurp --raw-input 'split("\n")[:-1]') - -echo "Found CHARM_PATHS_LIST: $CHARM_PATHS_LIST" - -echo "::set-output name=CHARM_PATHS_LIST::$CHARM_PATHS_LIST" diff --git a/.github/workflows/on_pull_request.yaml b/.github/workflows/on_pull_request.yaml deleted file mode 100644 index 59102ae5..00000000 --- a/.github/workflows/on_pull_request.yaml +++ /dev/null @@ -1,49 +0,0 @@ -name: On Pull Request - -# On pull_request, we: -# * always publish to charmhub at latest/edge/branchname -# * always run tests -# * always run builds with cache -on: - pull_request: - -jobs: - get-charm-paths: - name: Generate the Charm Matrix content - runs-on: ubuntu-latest - outputs: - charm-paths: ${{ steps.get-charm-paths.outputs.charm-paths }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Get paths for all charms in this repo - id: get-charm-paths - uses: canonical/kubeflow-ci/actions/get-charm-paths@main - - build: - strategy: - matrix: - charm: ${{ fromJSON(needs.get-charm-paths.outputs.charm-paths) }} - name: Build charm | ${{ matrix.charm }} - needs: - - get-charm-paths - uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v29.0.0 - with: - charmcraft-snap-channel: latest/candidate # TODO: remove after charmcraft 3.3 stable release - path-to-charm-directory: ${{ matrix.charm }} - - tests: - name: Run Tests - needs: build - uses: ./.github/workflows/integrate.yaml - secrets: inherit - with: - artifact-prefix: ${{ needs.build.outputs.artifact-prefix }} - - # publish runs in parallel with tests, as we always publish in this situation - publish-charm: - name: Publish Charm - needs: build - uses: ./.github/workflows/publish.yaml - secrets: inherit diff --git a/.github/workflows/on_push.yaml b/.github/workflows/on_push.yaml deleted file mode 100644 index 31c42da3..00000000 --- a/.github/workflows/on_push.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: On Push - -# On push to a "special" branch, we: -# * always publish to charmhub at latest/edge/branchname -# * always run tests -# where a "special" branch is one of main or track/**, as -# by convention these branches are the source for a corresponding -# charmhub edge channel. - -on: - push: - branches: - - main - - track/** - -jobs: - - tests: - name: Run Tests - uses: ./.github/workflows/integrate.yaml - secrets: inherit - - # publish runs in series with tests, and only publishes if tests passes - publish-charm: - name: Publish Charm - needs: tests - uses: ./.github/workflows/publish.yaml - secrets: inherit diff --git a/.github/workflows/promote.yaml b/.github/workflows/promote.yaml new file mode 100644 index 00000000..8a33b385 --- /dev/null +++ b/.github/workflows/promote.yaml @@ -0,0 +1,32 @@ +# reusable workflow triggered manually +name: Promote charm to other tracks and channels + +on: + workflow_dispatch: + inputs: + destination-channel: + description: 'Destination Channel' + required: true + origin-channel: + description: 'Origin Channel' + required: true + charm-name: + description: 'Charm subdirectory name' + required: true + +jobs: + promote-charm: + name: Promote charm + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + - name: Release charm to channel + # TODO: use canonical/charming-actions/promote-charm? + uses: canonical/charming-actions/release-charm@2.6.2 + with: + credentials: ${{ secrets.CHARMCRAFT_CREDENTIALS }} + github-token: ${{ secrets.GITHUB_TOKEN }} + destination-channel: ${{ github.event.inputs.destination-channel }} + origin-channel: ${{ github.event.inputs.origin-channel }} + tag-prefix: ${{ github.event.inputs.charm-name }} + charm-path: charms/${{ github.event.inputs.charm-name}} diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml deleted file mode 100644 index e591d822..00000000 --- a/.github/workflows/publish.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# reusable workflow for publishing all charms in this repo -name: Publish - -on: - workflow_call: - inputs: - source_branch: - description: Github branch from this repo to publish. If blank, will use the default branch - default: '' - required: false - type: string - secrets: - CHARMCRAFT_CREDENTIALS: - required: true - workflow_dispatch: - inputs: - destination_channel: - description: CharmHub channel to publish to - required: false - default: 'latest/edge' - type: string - source_branch: - description: Github branch from this repo to publish. If blank, will use the default branch - required: false - default: '' - type: string - -jobs: - get-charm-paths: - name: Generate the Charm Matrix - runs-on: ubuntu-20.04 - outputs: - charm_paths_list: ${{ steps.get-charm-paths.outputs.CHARM_PATHS_LIST }} - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ inputs.source_branch }} - - name: Get paths for all charms in repo - id: get-charm-paths - run: bash .github/workflows/get-charm-paths.sh - - - publish-charm: - name: Publish Charm - runs-on: ubuntu-20.04 - needs: get-charm-paths - strategy: - fail-fast: false - matrix: - charm-path: ${{ fromJSON(needs.get-charm-paths.outputs.charm_paths_list) }} - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ inputs.source_branch }} - - - name: Select charmhub channel - uses: canonical/charming-actions/channel@2.6.2 - id: select-channel - if: ${{ inputs.destination_channel == '' }} - - # Combine inputs from different sources to a single canonical value so later steps don't - # need logic for picking the right one - - name: Parse and combine inputs - id: parse-inputs - run: | - # destination_channel - destination_channel="${{ inputs.destination_channel || steps.select-channel.outputs.name }}" - echo "setting output of destination_channel=$destination_channel" - echo "::set-output name=destination_channel::$destination_channel" - - # tag_prefix - # if charm_path = ./ --> tag_prefix = '' (null) - # if charm_path != ./some-charm (eg: a charm in a ./charms dir) --> tag_prefix = 'some-charm' - if [ ${{ matrix.charm-path }} == './' ]; then - tag_prefix='' - else - tag_prefix=$(basename ${{ matrix.charm-path }} ) - fi - echo "setting output of tag_prefix=$tag_prefix" - echo "::set-output name=tag_prefix::$tag_prefix" - - - name: Upload charm to charmhub - uses: canonical/charming-actions/upload-charm@2.6.2 - with: - credentials: ${{ secrets.CHARMCRAFT_CREDENTIALS }} - github-token: ${{ secrets.GITHUB_TOKEN }} - charm-path: ${{ matrix.charm-path }} - channel: ${{ steps.parse-inputs.outputs.destination_channel }} - tag-prefix: ${{ steps.parse-inputs.outputs.tag_prefix }} - charmcraft-channel: latest/candidate # TODO: remove after charmcraft 3.3 stable release diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 57fc88dc..74b2e62b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,31 +1,30 @@ -# reusable workflow triggered manually -name: Release charm to other tracks and channels +name: Release to Charmhub on: - workflow_dispatch: - inputs: - destination-channel: - description: 'Destination Channel' - required: true - origin-channel: - description: 'Origin Channel' - required: true - charm-name: - description: 'Charm subdirectory name' - required: true + push: + branches: + - main + - track/** jobs: - promote-charm: - name: Promote charm - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v3 - - name: Release charm to channel - uses: canonical/charming-actions/release-charm@2.6.2 - with: - credentials: ${{ secrets.CHARMCRAFT_CREDENTIALS }} - github-token: ${{ secrets.GITHUB_TOKEN }} - destination-channel: ${{ github.event.inputs.destination-channel }} - origin-channel: ${{ github.event.inputs.origin-channel }} - tag-prefix: ${{ github.event.inputs.charm-name }} - charm-path: charms/${{ github.event.inputs.charm-name}} + ci-tests: + uses: ./.github/workflows/ci.yaml + secrets: inherit + + release: + strategy: + matrix: + charm: ${{ fromJSON(needs.ci-tests.outputs.charm-paths) }} + name: Release charm | ${{ matrix.charm }} + needs: + - ci-tests + uses: canonical/data-platform-workflows/.github/workflows/release_charm.yaml@v29.0.0 + with: + charmcraft-snap-channel: latest/candidate # TODO: remove after charmcraft 3.3 stable release + channel: ${{ inputs.destination_channel || needs.ci-tests.outputs.channel }} + artifact-prefix: ${{ needs.ci-tests.outputs.artifact-prefix }} + path-to-charm-directory: ${{ matrix.charm }} + secrets: + charmhub-token: ${{ secrets.CHARMCRAFT_CREDENTIALS }} + permissions: + contents: write # Needed to create git tags diff --git a/.github/workflows/weekly_ci.yaml b/.github/workflows/weekly_ci.yaml deleted file mode 100644 index ef427c1e..00000000 --- a/.github/workflows/weekly_ci.yaml +++ /dev/null @@ -1,13 +0,0 @@ -name: Run weekly tests - -on: - schedule: - - cron: '0 8 * * TUE' - -jobs: - - tests: - name: Run Tests - uses: ./.github/workflows/integrate.yaml - secrets: - charmcraft-credentials: "${{ secrets.CHARMCRAFT_CREDENTIALS }}" diff --git a/charms/kfp-api/charmcraft.yaml b/charms/kfp-api/charmcraft.yaml index d5434f36..e7fad9d6 100644 --- a/charms/kfp-api/charmcraft.yaml +++ b/charms/kfp-api/charmcraft.yaml @@ -7,7 +7,7 @@ platforms: # - 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: +# Files implicitly copied/"staged" 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) @@ -25,7 +25,7 @@ parts: # "charm-python" part name is arbitrary; use for consistency # Avoid using "charm" part name since that has special meaning to charmcraft charm-python: - # By default, the `python` plugin creates/primes these directories: + # By default, the `python` plugin creates/stages these directories: # - lib, src # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_python.py#L79-L81) # - venv @@ -44,5 +44,5 @@ parts: files: plugin: dump source: . - prime: + stage: - LICENSE diff --git a/charms/kfp-metadata-writer/charmcraft.yaml b/charms/kfp-metadata-writer/charmcraft.yaml index ff2f0700..cdb6571d 100644 --- a/charms/kfp-metadata-writer/charmcraft.yaml +++ b/charms/kfp-metadata-writer/charmcraft.yaml @@ -5,7 +5,7 @@ platforms: # - 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: +# Files implicitly copied/"staged" 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) @@ -23,7 +23,7 @@ parts: # "charm-python" part name is arbitrary; use for consistency # Avoid using "charm" part name since that has special meaning to charmcraft charm-python: - # By default, the `python` plugin creates/primes these directories: + # By default, the `python` plugin creates/stages these directories: # - lib, src # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_python.py#L79-L81) # - venv @@ -65,5 +65,5 @@ parts: files: plugin: dump source: . - prime: + stage: - LICENSE diff --git a/charms/kfp-persistence/charmcraft.yaml b/charms/kfp-persistence/charmcraft.yaml index d5434f36..e7fad9d6 100644 --- a/charms/kfp-persistence/charmcraft.yaml +++ b/charms/kfp-persistence/charmcraft.yaml @@ -7,7 +7,7 @@ platforms: # - 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: +# Files implicitly copied/"staged" 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) @@ -25,7 +25,7 @@ parts: # "charm-python" part name is arbitrary; use for consistency # Avoid using "charm" part name since that has special meaning to charmcraft charm-python: - # By default, the `python` plugin creates/primes these directories: + # By default, the `python` plugin creates/stages these directories: # - lib, src # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_python.py#L79-L81) # - venv @@ -44,5 +44,5 @@ parts: files: plugin: dump source: . - prime: + stage: - LICENSE diff --git a/charms/kfp-profile-controller/charmcraft.yaml b/charms/kfp-profile-controller/charmcraft.yaml index 4ae8d7a4..5ac4e098 100644 --- a/charms/kfp-profile-controller/charmcraft.yaml +++ b/charms/kfp-profile-controller/charmcraft.yaml @@ -7,7 +7,7 @@ platforms: # - 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: +# Files implicitly copied/"staged" 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) @@ -25,7 +25,7 @@ parts: # "charm-python" part name is arbitrary; use for consistency # Avoid using "charm" part name since that has special meaning to charmcraft charm-python: - # By default, the `python` plugin creates/primes these directories: + # By default, the `python` plugin creates/stages these directories: # - lib, src # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_python.py#L79-L81) # - venv @@ -44,6 +44,6 @@ parts: files: plugin: dump source: . - prime: + stage: - files/upstream/sync.py - LICENSE diff --git a/charms/kfp-schedwf/charmcraft.yaml b/charms/kfp-schedwf/charmcraft.yaml index d5434f36..e7fad9d6 100644 --- a/charms/kfp-schedwf/charmcraft.yaml +++ b/charms/kfp-schedwf/charmcraft.yaml @@ -7,7 +7,7 @@ platforms: # - 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: +# Files implicitly copied/"staged" 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) @@ -25,7 +25,7 @@ parts: # "charm-python" part name is arbitrary; use for consistency # Avoid using "charm" part name since that has special meaning to charmcraft charm-python: - # By default, the `python` plugin creates/primes these directories: + # By default, the `python` plugin creates/stages these directories: # - lib, src # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_python.py#L79-L81) # - venv @@ -44,5 +44,5 @@ parts: files: plugin: dump source: . - prime: + stage: - LICENSE diff --git a/charms/kfp-ui/charmcraft.yaml b/charms/kfp-ui/charmcraft.yaml index d5434f36..e7fad9d6 100644 --- a/charms/kfp-ui/charmcraft.yaml +++ b/charms/kfp-ui/charmcraft.yaml @@ -7,7 +7,7 @@ platforms: # - 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: +# Files implicitly copied/"staged" 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) @@ -25,7 +25,7 @@ parts: # "charm-python" part name is arbitrary; use for consistency # Avoid using "charm" part name since that has special meaning to charmcraft charm-python: - # By default, the `python` plugin creates/primes these directories: + # By default, the `python` plugin creates/stages these directories: # - lib, src # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_python.py#L79-L81) # - venv @@ -44,5 +44,5 @@ parts: files: plugin: dump source: . - prime: + stage: - LICENSE diff --git a/charms/kfp-viewer/charmcraft.yaml b/charms/kfp-viewer/charmcraft.yaml index d5434f36..e7fad9d6 100644 --- a/charms/kfp-viewer/charmcraft.yaml +++ b/charms/kfp-viewer/charmcraft.yaml @@ -7,7 +7,7 @@ platforms: # - 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: +# Files implicitly copied/"staged" 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) @@ -25,7 +25,7 @@ parts: # "charm-python" part name is arbitrary; use for consistency # Avoid using "charm" part name since that has special meaning to charmcraft charm-python: - # By default, the `python` plugin creates/primes these directories: + # By default, the `python` plugin creates/stages these directories: # - lib, src # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_python.py#L79-L81) # - venv @@ -44,5 +44,5 @@ parts: files: plugin: dump source: . - prime: + stage: - LICENSE diff --git a/charms/kfp-viz/charmcraft.yaml b/charms/kfp-viz/charmcraft.yaml index d5434f36..e7fad9d6 100644 --- a/charms/kfp-viz/charmcraft.yaml +++ b/charms/kfp-viz/charmcraft.yaml @@ -7,7 +7,7 @@ platforms: # - 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: +# Files implicitly copied/"staged" 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) @@ -25,7 +25,7 @@ parts: # "charm-python" part name is arbitrary; use for consistency # Avoid using "charm" part name since that has special meaning to charmcraft charm-python: - # By default, the `python` plugin creates/primes these directories: + # By default, the `python` plugin creates/stages these directories: # - lib, src # (https://github.com/canonical/charmcraft/blob/9ff19c328e23b50cc06f04e8a5ad4835740badf4/charmcraft/parts/plugins/_python.py#L79-L81) # - venv @@ -44,5 +44,5 @@ parts: files: plugin: dump source: . - prime: + stage: - LICENSE