chore(version): bump version to 1.0.4 to test release workflow #3
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
# .github/workflows/release.yml | |
name: Auto Release | |
on: | |
push: | |
branches: [main] | |
paths: ['pyproject.toml'] # Only trigger when pyproject.toml changes | |
jobs: | |
check-version-bump: | |
runs-on: ubuntu-latest | |
outputs: | |
should-release: ${{ steps.check.outputs.should-release }} | |
new-version: ${{ steps.check.outputs.new-version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 # Need to compare with previous commit | |
- name: Set up uv | |
uses: astral-sh/setup-uv@v6 | |
with: | |
enable-cache: true | |
- name: Check if version was bumped | |
id: check | |
run: | | |
# Get current version | |
CURRENT_VERSION=$(uv version | cut -d' ' -f2) | |
echo "Current version: $CURRENT_VERSION" | |
# Get previous version from git (before this commit) | |
git checkout HEAD~1 -- pyproject.toml || true | |
PREVIOUS_VERSION=$(uv version | cut -d' ' -f2) 2>/dev/null || echo "0.0.0" | |
git checkout HEAD -- pyproject.toml | |
echo "Previous version: $PREVIOUS_VERSION" | |
# Check if version actually changed | |
if [[ "$CURRENT_VERSION" != "$PREVIOUS_VERSION" ]]; then | |
echo "✅ Version bump detected: $PREVIOUS_VERSION → $CURRENT_VERSION" | |
echo "should-release=true" >> $GITHUB_OUTPUT | |
echo "new-version=$CURRENT_VERSION" >> $GITHUB_OUTPUT | |
else | |
echo "ℹ️ No version change detected" | |
echo "should-release=false" >> $GITHUB_OUTPUT | |
fi | |
release: | |
needs: check-version-bump | |
if: needs.check-version-bump.outputs.should-release == 'true' | |
runs-on: ubuntu-latest | |
env: | |
VERSION: ${{ needs.check-version-bump.outputs.new-version }} | |
permissions: | |
contents: write | |
packages: write | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up uv | |
uses: astral-sh/setup-uv@v6 | |
with: | |
enable-cache: true | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
- name: Create release tag | |
run: | | |
set -e | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
if git tag -l "v$VERSION" | grep -q "v$VERSION"; then | |
echo "⚠️ Tag v$VERSION already exists, skipping tag creation" | |
else | |
git tag "v$VERSION" | |
git push origin "v$VERSION" | |
echo "✅ Created and pushed tag v$VERSION" | |
fi | |
- name: Update manifest.json version | |
run: | | |
set -e | |
sed -i 's/"version": ".*"/"version": "'$VERSION'"/' manifest.json | |
echo "✅ Updated manifest.json to version $VERSION" | |
- name: Commit manifest update | |
run: | | |
set -e | |
git add manifest.json | |
if git diff --staged --quiet; then | |
echo "ℹ️ No changes to commit" | |
else | |
git commit -m "chore(dxt): update manifest.json version to v$VERSION [skip ci]" | |
git push origin main | |
echo "✅ Committed manifest.json update" | |
fi | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Log in to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Build and push Docker images | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
push: true | |
tags: | | |
stickerdaniel/linkedin-mcp-server:${{ env.VERSION }} | |
stickerdaniel/linkedin-mcp-server:latest | |
platforms: linux/amd64,linux/arm64 | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- name: Optimize uv cache for CI | |
run: uv cache prune --ci | |
- name: Build DXT extension | |
run: bunx @anthropic-ai/dxt pack | |
- name: Create GitHub Release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
uses: softprops/action-gh-release@v2 | |
with: | |
tag_name: v${{ env.VERSION }} | |
files: | | |
*.dxt | |
generate_release_notes: true | |
draft: false | |
prerelease: false | |
name: "LinkedIn MCP Server v${{ env.VERSION }}" | |
body: | | |
For an installation guide, please refer to the [README](https://github.com/stickerdaniel/linkedin-mcp-server/blob/main/README.md). | |
## Update Docker Image | |
**Pull this release's image:** | |
```bash | |
docker pull stickerdaniel/linkedin-mcp-server:${{ env.VERSION }} | |
``` | |
## Update Claude Desktop DXT Extension | |
1. Download the `.dxt` file below | |
2. Double-click to open in Claude Desktop | |
3. Configure with your LinkedIn credentials | |
- name: Summary | |
run: | | |
echo "Successfully released v$VERSION!" | |
echo "Docker: stickerdaniel/linkedin-mcp-server:$VERSION" | |
echo "GitHub: https://github.com/${{ github.repository }}/releases/tag/v$VERSION" |