name: Create Release
# Triggers when a version tag (e.g., v1.0.3) is pushed to the repository
on:
push:
tags:
- 'v*'
# Ensure only one release creation runs at a time
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false
jobs:
create-release:
name: Create GitHub Release
runs-on: ubuntu-latest
permissions:
contents: write # Required to create releases and upload assets
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for accurate release notes
token: ${{ secrets.PAT_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Extract version
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Build MCPB bundle
run: node scripts/build-mcpb.js
- name: Verify bundle exists
run: |
BUNDLE_FILE="tempo-filler-mcp-server-${{ steps.version.outputs.VERSION }}.dxt"
if [ ! -f "$BUNDLE_FILE" ]; then
echo "Error: $BUNDLE_FILE not found"
ls -la *.dxt 2>/dev/null || echo "No .dxt files found"
exit 1
fi
echo "Bundle created: $(ls -lh $BUNDLE_FILE)"
echo "Bundle contents:"
unzip -l "$BUNDLE_FILE" | head -50
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
# Auto-generate release notes from commit messages
generate_release_notes: true
# Attach the MCP bundle as a downloadable asset
files: |
tempo-filler-mcp-server-${{ steps.version.outputs.VERSION }}.dxt
# Release configuration
draft: false
prerelease: false
# Make the release notes more informative
body: |
## Installation
### NPM (Recommended)
```bash
npx @tranzact/tempo-filler-mcp-server
```
### Claude Desktop
Download the `.dxt` file below and drag it to Claude Desktop settings → Extensions to install.
### Manual Configuration
Add to your MCP client configuration:
```json
{
"mcpServers": {
"tempo-filler": {
"command": "npx",
"args": ["@tranzact/tempo-filler-mcp-server"],
"env": {
"TEMPO_BASE_URL": "https://your-jira-instance.com",
"TEMPO_PAT": "your-personal-access-token"
}
}
}
}
```
---
env:
GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }}