Merge pull request #67 from Arbuzov/codex/fix-unbound-variable-error-… #104
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 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 }} |