Skip to content

Merge pull request #67 from Arbuzov/codex/fix-unbound-variable-error-… #104

Merge pull request #67 from Arbuzov/codex/fix-unbound-variable-error-…

Merge pull request #67 from Arbuzov/codex/fix-unbound-variable-error-… #104

Workflow file for this run

name: Release Charts
on:
push:
branches:
- master
paths:
- 'charts/**'
- '.github/workflows/*'
workflow_dispatch:
inputs:
action:
description: Release behavior (release, delete, reupload)
type: choice
options:
- release
- delete
- reupload
default: release
chart:
description: >-
Chart name for delete/reupload (e.g. mcpo, or all for every chart)
type: choice
options:
- all
- atlassian
- claude-code-api
- copilot-api
- gitlab
- homeassistant
- kubernetes
- mcpo
- mcp-library
- playwright
- search
required: false
version:
description: >-
Chart version for delete/reupload (e.g. 0.3.2, or all for every version)
type: string
required: false
permissions:
contents: write
jobs:
manage_release:
runs-on: ubuntu-latest
env:
ACTION: >-
${{ github.event_name == 'workflow_dispatch'
&& github.event.inputs.action
|| 'release' }}
CHART: ${{ github.event.inputs.chart }}
VERSION: ${{ github.event.inputs.version }}
if: >-
${{ github.event_name == 'workflow_dispatch'
&& (github.event.inputs.action == 'delete'
|| github.event.inputs.action == 'reupload') }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Validate inputs
if: ${{ env.ACTION == 'delete' || env.ACTION == 'reupload' }}
run: |
if [[ -z "${CHART}" || -z "${VERSION}" ]]; then
echo "chart and version inputs are required for ${ACTION}."
exit 1
fi
if [[ "${CHART}" == "all" && "${VERSION}" != "all" ]]; then
echo "version must be 'all' when chart is 'all'."
exit 1
fi
- name: Install PyYAML
if: ${{ env.ACTION == 'delete' || env.ACTION == 'reupload' }}
run: python -m pip install --upgrade pyyaml
- name: Delete GitHub release and gh-pages artifacts
if: ${{ env.ACTION == 'delete' || env.ACTION == 'reupload' }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
bash "${GITHUB_WORKSPACE}/.github/scripts/manage_release.sh"
release_library:
needs: manage_release
if: >-
${{ always()
&& (github.event_name == 'push'
|| github.event.inputs.action == 'release'
|| github.event.inputs.action == 'reupload') }}
runs-on: ubuntu-latest
outputs:
library_version: ${{ steps.cr.outputs.chart_version }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure Git author
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Wipe all charts except mcp-library
run: |
find charts -mindepth 1 -maxdepth 1 ! -name 'mcp-library' -exec rm -rf {} +
- name: Install chart-releaser (reupload)
if: >-
${{ github.event.inputs.action == 'reupload'
&& (github.event.inputs.chart == 'all'
|| github.event.inputs.chart == 'mcp-library') }}
uses: helm/chart-releaser-action@v1.7.0
with:
install_only: true
env:
CR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Package charts (reupload)
if: >-
${{ github.event.inputs.action == 'reupload'
&& (github.event.inputs.chart == 'all'
|| github.event.inputs.chart == 'mcp-library') }}
run: |
bash "${GITHUB_WORKSPACE}/.github/scripts/package_charts.sh" \
"charts" "${{ github.event.inputs.chart }}"
- name: Run chart-releaser
id: cr
uses: helm/chart-releaser-action@v1.7.0
if: >-
${{ github.event.inputs.action != 'reupload'
|| github.event.inputs.chart == 'all'
|| github.event.inputs.chart == 'mcp-library' }}
with:
charts_dir: charts
pages_branch: gh-pages
mark_as_latest: false
skip_packaging: >-
${{ github.event.inputs.action == 'reupload'
&& (github.event.inputs.chart == 'all'
|| github.event.inputs.chart == 'mcp-library')
&& 'true' || '' }}
skip_existing: false
env:
CR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Show released library version
run: echo "Released mcp-library version ${{ steps.cr.outputs.chart_version }}"
release_all:
needs: release_library
if: >-
${{ always()
&& (github.event_name == 'push'
|| github.event.inputs.action == 'release'
|| github.event.inputs.action == 'reupload') }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure Git author
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Wipe mcp-library
run: rm -rf charts/mcp-library
- name: Add MCP chart repository
run: |
helm repo add mcp https://arbuzov.github.io/mcp-helm/
helm repo update
- name: Install chart-releaser (reupload)
if: >-
${{ github.event.inputs.action == 'reupload'
&& github.event.inputs.chart != 'mcp-library' }}
uses: helm/chart-releaser-action@v1.7.0
with:
install_only: true
env:
CR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Package charts (reupload)
if: >-
${{ github.event.inputs.action == 'reupload'
&& github.event.inputs.chart != 'mcp-library' }}
run: |
bash "${GITHUB_WORKSPACE}/.github/scripts/package_charts.sh" \
"charts" "${{ github.event.inputs.chart }}"
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.7.0
if: >-
${{ github.event.inputs.action != 'reupload'
|| github.event.inputs.chart != 'mcp-library' }}
with:
charts_dir: charts
pages_branch: gh-pages
mark_as_latest: false
skip_packaging: >-
${{ github.event.inputs.action == 'reupload'
&& github.event.inputs.chart != 'mcp-library'
&& 'true' || '' }}
skip_existing: false
env:
CR_TOKEN: ${{ secrets.GITHUB_TOKEN }}