| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- name: Release OpenAPI MCP
- on:
- push:
- branches:
- - "**"
- tags:
- - "v*.*.*"
- paths-ignore:
- - "**/*.md"
- - "**/*.yaml"
- pull_request:
- branches:
- - "**"
- paths-ignore:
- - "**/*.md"
- - "**/*.yaml"
- jobs:
- release-openapi-mcp:
- name: Release OpenAPI MCP
- runs-on: ubuntu-24.04
- permissions:
- contents: write
- strategy:
- fail-fast: false
- matrix:
- targets:
- - GOOS: linux
- GOARCH: arm64
- - GOOS: linux
- GOARCH: amd64
- - GOOS: darwin
- GOARCH: arm64
- - GOOS: darwin
- GOARCH: amd64
- - GOOS: windows
- GOARCH: amd64
- EXT: .exe
- - GOOS: windows
- GOARCH: arm64
- EXT: .exe
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Setup Go
- uses: actions/setup-go@v5
- with:
- go-version-file: "openapi-mcp/go.mod"
- - name: Build
- working-directory: openapi-mcp
- run: |
- export GOOS=${{ matrix.targets.GOOS }}
- export GOARCH=${{ matrix.targets.GOARCH }}
- go build -trimpath -tags "jsoniter" -ldflags "-s -w" -o openapi-mcp-${{ matrix.targets.GOOS }}-${{ matrix.targets.GOARCH }}${{ matrix.targets.EXT }}
- - name: Get release meta
- if: ${{ startsWith(github.ref, 'refs/tags/') }}
- id: release_meta
- run: |
- version=${GITHUB_REF/refs\/tags\/v/}
- echo "version: ${version}"
- prerelease=$(echo ${version} | grep -E 'rc|beta|alpha' || true)
- release_name="Version ${version}"
- echo "release_name: ${release_name}"
- if [ -n "${prerelease}" ]; then
- prerelease=true
- release_name="${release_name} (Prerelease)"
- fi
- tag_name="v${version}"
- echo "prerelease: ${prerelease}"
- echo "tag_name: ${tag_name}"
- echo "PRERELEASE=${prerelease}" >> $GITHUB_OUTPUT
- echo "RELEASE_NAME=${release_name}" >> $GITHUB_OUTPUT
- echo "TAG_NAME=${tag_name}" >> $GITHUB_OUTPUT
- - name: Release
- uses: softprops/action-gh-release@v2
- if: ${{ startsWith(github.ref, 'refs/tags/') }}
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- draft: false
- prerelease: ${{ steps.release_meta.outputs.PRERELEASE }}
- append_body: false
- fail_on_unmatched_files: true
- name: ${{ steps.release_meta.outputs.RELEASE_NAME }}
- tag_name: ${{ steps.release_meta.outputs.TAG_NAME }}
- files: |
- openapi-mcp/openapi-mcp-${{ matrix.targets.GOOS }}-${{ matrix.targets.GOARCH }}${{ matrix.targets.EXT }}
|