diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e608ac..907b376 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: build: name: Build charms - uses: canonical/data-platform-workflows/.github/workflows/build_charms_with_cache.yaml@v2 + uses: canonical/data-platform-workflows/.github/workflows/build_charms_with_cache.yaml@v4 with: artifact-name: charm-packed @@ -93,3 +93,47 @@ jobs: juju status # TODO: test integration with dashboard / ha-proxy + + release: + name: "Release to edge" + runs-on: ubuntu-latest + needs: [build, bootstrap] + if: github.event_name == 'push' + + steps: + - name: Download packed charm + id: download + uses: actions/download-artifact@v3 + with: + name: ${{ needs.build.outputs.artifact-name }} + + - name: Select Charmhub channel + id: channel + shell: bash + run: | + set -x + case ${{ github.ref_name }} in + 3.* | 4.*) + TRACK="${{ github.ref_name }}" + ;; + master) + TRACK="latest" + ;; + esac + echo "track=$TRACK" >> "$GITHUB_OUTPUT" + + if [[ -z $TRACK ]]; then + echo "upload=false" >> "$GITHUB_OUTPUT" + else + echo "upload=true" >> "$GITHUB_OUTPUT" + fi + + + - name: Upload to Charmhub + if: steps.channel.outputs.upload == 'true' + env: + CHARMCRAFT_AUTH: ${{ secrets.CHARMCRAFT_AUTH }} + run: | + sudo snap install charmcraft --classic + charmcraft upload ${{ steps.download.outputs.download-path }}/*.charm \ + --release ${{ steps.channel.outputs.track }}/edge