name: Release
on:
push:
branches: [ main ]
jobs:
release:
runs-on: ubuntu-latest
concurrency: release
environment:
name: pypi
url: https://pypi.org/p/mcp-dbutils
permissions:
id-token: write
contents: write
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install semantic-release
run: |
npm install -g semantic-release @semantic-release/git @semantic-release/changelog @semantic-release/exec
- name: Release
id: semantic-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
- name: Check if dist directory exists
id: check_dist
run: |
if [ -d "dist" ] && [ "$(ls -A dist)" ]; then
echo "dist_exists=true" >> $GITHUB_OUTPUT
else
echo "dist_exists=false" >> $GITHUB_OUTPUT
echo "No distribution packages found in dist/ directory. Skipping PyPI publish."
fi
- name: Publish to PyPI
if: steps.check_dist.outputs.dist_exists == 'true'
uses: pypa/gh-action-pypi-publish@release/v1