diff --git a/.github/workflows/promote.yaml b/.github/workflows/promote.yaml new file mode 100644 index 0000000..aa53c2e --- /dev/null +++ b/.github/workflows/promote.yaml @@ -0,0 +1,25 @@ +name: Promote charm to other tracks and channels + +on: + workflow_dispatch: + inputs: + destination-channel: + description: 'Destination Channel, e.g. latest/candidate' + required: true + origin-channel: + description: 'Origin Channel, e.g. latest/edge' + required: true + +jobs: + promote-charm: + name: Promote charm + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Release charm to channel + uses: canonical/charming-actions/release-charm@2.4.0 + with: + credentials: ${{ secrets.CHARMHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} + destination-channel: ${{ github.event.inputs.destination-channel }} + origin-channel: ${{ github.event.inputs.origin-channel }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 309562b..3b01e7e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,25 +1,29 @@ -# This is a template `release.yaml` file for ops charms -# This file is managed by bootstack-charms-spec and should not be modified -# within individual charm repos. https://launchpad.net/bootstack-charms-spec - name: Release to Edge on: push: - branches: [master, main] - -concurrency: - group: release - cancel-in-progress: true + branches: [ main ] + release: + types: [ published ] jobs: check: uses: ./.github/workflows/check.yaml + secrets: inherit release: needs: check - uses: canonical/bootstack-actions/.github/workflows/charm-release.yaml@v2 - secrets: inherit - with: - channel: "latest/edge" - upload-image: false + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - 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 + - name: Upload charm to charmhub + uses: canonical/charming-actions/upload-charm@2.4.0 + with: + credentials: "${{ secrets.CHARMHUB_TOKEN }}" + github-token: "${{ secrets.GITHUB_TOKEN }}" + channel: "latest/edge" + # Note(rgildein): Right now we are not using destructive-mode, since our charmcraft.yaml is designed with a single build-on and the ability to run-on multiple bases. Running with destructive-mode would require aligning the base defined in this job with the one defined in charmcraft.yaml (build-on). + destructive-mode: false