ci: add channel selection publish logic #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release to latest/edge | |
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 | |
push: | |
branches: | |
- main | |
- track/** | |
jobs: | |
charm-tests: | |
uses: ./.github/workflows/charm-integration.yaml | |
release-to-charmhub: | |
name: Release to CharmHub | |
needs: | |
- charm-tests | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Release any bumped charm libs | |
uses: canonical/charming-actions/release-libraries@2.2.2 | |
with: | |
charm-path: "./charms/openfga-k8s" | |
credentials: "${{ secrets.CHARMHUB_TOKEN }}" | |
github-token: "${{ secrets.GITHUB_TOKEN }}" | |
- name: Build local images | |
run: make build-image | |
- name: Select charmhub channel | |
uses: canonical/charming-actions/channel@631c2d944da2bd12430f1f3a954c8fffcf2385cd # 2.4.0 | |
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" | |
- name: Upload charm to charmhub | |
uses: kian99/charming-actions/upload-charm@add-local-image-option | |
with: | |
credentials: "${{ secrets.CHARMHUB_TOKEN }}" | |
github-token: "${{ secrets.GITHUB_TOKEN }}" | |
channel: ${{ steps.parse-inputs.outputs.destination_channel }} | |
charm-path: "./charms/openfga-k8s" | |
local-image: "true" |