release: prepare mb3r-stack v0.3.2 #9
Workflow file for this run
This file contains hidden or 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 | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| packages: write | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - uses: azure/setup-helm@v4.3.1 | |
| with: | |
| version: v3.15.4 | |
| - name: Install dependencies | |
| run: python -m pip install -r requirements.txt | |
| - name: Build release assets | |
| run: make release-dry-run | |
| - name: Log in to GHCR | |
| run: echo "${{ secrets.GITHUB_TOKEN }}" | helm registry login ghcr.io -u "${{ github.actor }}" --password-stdin | |
| - name: Push OCI chart | |
| shell: bash | |
| run: | | |
| repo_owner=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]') | |
| chart_file=$(find dist/charts -maxdepth 1 -name '*.tgz' | head -n 1) | |
| helm push "$chart_file" "oci://ghcr.io/${repo_owner}/charts" | |
| - name: Publish GitHub release | |
| shell: bash | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| set -euo pipefail | |
| title="$(python - <<'PY' | |
| import json | |
| from pathlib import Path | |
| print(json.loads(Path("dist/release-manifest.json").read_text(encoding="utf-8"))["title"]) | |
| PY | |
| )" | |
| mapfile -t assets < dist/release-assets.txt | |
| args=() | |
| for asset in "${assets[@]}"; do | |
| args+=("dist/${asset}") | |
| done | |
| if gh release view "${GITHUB_REF_NAME}" >/dev/null 2>&1; then | |
| gh release upload "${GITHUB_REF_NAME}" "${args[@]}" --clobber | |
| gh release edit "${GITHUB_REF_NAME}" --latest --title "${title}" --notes-file dist/release-notes.md | |
| release_id="$(gh release view "${GITHUB_REF_NAME}" --json databaseId --jq .databaseId)" | |
| gh api "repos/${GITHUB_REPOSITORY}/releases/${release_id}" --method PATCH -F prerelease=false >/dev/null | |
| else | |
| gh release create "${GITHUB_REF_NAME}" \ | |
| --verify-tag \ | |
| --latest \ | |
| --title "${title}" \ | |
| --notes-file dist/release-notes.md \ | |
| "${args[@]}" | |
| fi |