diff --git a/.github/workflows/promote.yaml b/.github/workflows/promote.yaml index c0c6163..e6b4f64 100644 --- a/.github/workflows/promote.yaml +++ b/.github/workflows/promote.yaml @@ -1,28 +1,40 @@ -name: Promote charm to other tracks and channels +# This file is centrally managed as a template file in https://github.com/canonical/solutions-engineering-automation +# To update the file: +# - Edit it in the canonical/solutions-engineering-automation repository. +# - Open a PR with the changes. +# - When the PR merges, the soleng-terraform bot will open a PR to the target repositories with the changes. +name: Promote charm to default track, standard risk levels. on: workflow_dispatch: inputs: - destination-channel: - description: 'Destination Channel, e.g. latest/candidate' - required: true - origin-channel: - description: 'Origin Channel, e.g. latest/edge' + channel-promotion: + description: 'Channel Promotion, e.g. latest/edge -> latest/candidate' required: true + type: choice + options: + - 'latest/edge -> latest/candidate' + - 'latest/candidate -> latest/stable' jobs: promote-charm: name: Promote charm - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 + - name: Set channels + id: set-channels + run: | + channel_promotion="${{ github.event.inputs.channel-promotion }}" + origin=$(echo "$channel_promotion" | sed 's/\s*->.*//') + destination=$(echo "$channel_promotion" | sed 's/.*->\s*//') + echo "destination-channel=$destination" >> $GITHUB_OUTPUT + echo "origin-channel=$origin" >> $GITHUB_OUTPUT - name: Release charm to channel - # Note(rgildein): Since this charm uses the metadata defined in charmcraft.yaml, we need to use the pre-release version that includes https://github.com/canonical/charming-actions/pull/132. - uses: canonical/charming-actions/release-charm@2.5.0-rc + uses: canonical/charming-actions/release-charm@2.6.2 with: credentials: ${{ secrets.CHARMHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }} - destination-channel: ${{ github.event.inputs.destination-channel }} - origin-channel: ${{ github.event.inputs.origin-channel }} - # Note(rgildein): The default is 20.04, but this charm has never been released for this base. - base-channel: 22.04 + destination-channel: ${{ steps.set-channels.outputs.destination-channel }} + origin-channel: ${{ steps.set-channels.outputs.origin-channel }} + charmcraft-channel: "2.x/stable" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6149960..539925c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,3 +1,8 @@ +# This file is centrally managed as a template file in https://github.com/canonical/solutions-engineering-automation +# To update the file: +# - Edit it in the canonical/solutions-engineering-automation repository. +# - Open a PR with the changes. +# - When the PR merges, the soleng-terraform bot will open a PR to the target repositories with the changes. name: Release to Edge on: @@ -13,20 +18,26 @@ jobs: release: needs: check - runs-on: ubuntu-latest + runs-on: ${{ matrix.runs-on }} + strategy: + fail-fast: false + matrix: + runs-on: [[ubuntu-22.04]] steps: - name: Checkout uses: actions/checkout@v4 + with: + submodules: true - name: Initialize lxd # This should dropped once it's implemented on charming-actions itself. https://github.com/canonical/charming-actions/issues/140 - uses: canonical/setup-lxd@v0.1.1 + # revision is latest main at time of writing; using because it contains a fix to https://github.com/canonical/setup-lxd/issues/19 + uses: canonical/setup-lxd@2aa6f7caf7d1484298a64192f7f63a6684e648a4 - - name: Upload charm to charmhub + - name: Pack and upload to charmhub uses: canonical/charming-actions/upload-charm@2.6.2 with: charmcraft-channel: "2.x/stable" credentials: "${{ secrets.CHARMHUB_TOKEN }}" github-token: "${{ secrets.GITHUB_TOKEN }}" - channel: "latest/edge" # Ensure the charm is built in an isolated environment and on the correct base in an lxd container. destructive-mode: false