Skip to content

chore: bump version to 1.4.0 #14

chore: bump version to 1.4.0

chore: bump version to 1.4.0 #14

Workflow file for this run

name: Release
permissions:
contents: read
pull-requests: write
on:
push:
tags:
- "v*"
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
build:
name: Build ${{ matrix.target }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
# Linux x86_64
# - target: x86_64-unknown-linux-gnu
# os: ubuntu-latest
# binary_name: vnt
# asset_name: mcptools-Linux-x86_64
# macOS x86_64 (Intel)
- target: x86_64-apple-darwin
os: macos-15
binary_name: mcptools
asset_name: mcptools-Darwin-x86_64
# macOS aarch64 (Apple Silicon)
- target: aarch64-apple-darwin
os: macos-15
binary_name: mcptools
asset_name: mcptools-Darwin-arm64
# Windows x86_64
# - target: x86_64-pc-windows-msvc
# os: windows-2025
# binary_name: vnt.exe
# asset_name: mcptools-Windows-x86_64.exe
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Cache cargo registry and index
uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.target }}-cargo-
- name: Cache target directory
uses: actions/cache@v4
with:
path: target/
key: ${{ runner.os }}-${{ matrix.target }}-target-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.target }}-target-
- name: Build binary
run: cargo build --release --target ${{ matrix.target }}
- name: Strip binary
run: strip target/${{ matrix.target }}/release/${{ matrix.binary_name }}
- name: Create asset
run: cp target/${{ matrix.target }}/release/${{ matrix.binary_name }} ${{ matrix.asset_name }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.asset_name }}
path: ${{ matrix.asset_name }}
if-no-files-found: error
release:
name: Create Release
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Download all artifacts
uses: actions/download-artifact@v5
with:
path: artifacts
- name: Prepare release assets
run: |
mkdir -p release-assets
find artifacts -name "mcptools-*" -type f -exec cp {} release-assets/ \;
ls -la release-assets/
- name: Extract version from tag
id: version
run: echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Generate changelog
id: changelog
run: |
echo "changelog<<EOF" >> $GITHUB_OUTPUT
echo "## Changes" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
# Get previous tag
PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
if [[ -n "$PREVIOUS_TAG" ]]; then
echo "Changes since $PREVIOUS_TAG:" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
git log --pretty=format:"- %s (%h)" $PREVIOUS_TAG..HEAD >> $GITHUB_OUTPUT
else
echo "Initial release" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
git log --pretty=format:"- %s (%h)" >> $GITHUB_OUTPUT
fi
echo "" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.version }}
name: Release ${{ steps.version.outputs.version }}
body: |
# mcptools ${{ steps.version.outputs.version }}
> **⚠️ Platform Compatibility Notice**
>
> This tool currently **only compiles on macOS**. Pre-built binaries are provided for both Intel and Apple Silicon Macs.
> Support for other platforms may be added in future releases.
## Installation
### Method 1: Install via Cargo (Recommended for macOS users with Rust)
```bash
cargo install --git https://github.com/cloudbridgeuy/mcptools
```
### Method 2: Download Pre-built Binaries
Download the pre-built binary for your Mac architecture from the assets below:
**For Intel Macs (x86_64):**
```bash
# Download and install
curl -L "https://github.com/cloudbridgeuy/mcptools/releases/download/${{ steps.version.outputs.version }}/mcptools-Darwin-x86_64" -o mcptools
chmod +x mcptools
sudo mv mcptools /usr/local/bin/
# Verify installation
mcptools --version
```
**For Apple Silicon Macs (ARM64):**
```bash
# Download and install
curl -L "https://github.com/cloudbridgeuy/mcptools/releases/download/${{ steps.version.outputs.version }}/mcptools-Darwin-arm64" -o mcptools
chmod +x mcptools
sudo mv mcptools /usr/local/bin/
# Verify installation
mcptools --version
```
**Automatic detection (one-liner):**
```bash
curl -L "https://github.com/cloudbridgeuy/mcptools/releases/download/${{ steps.version.outputs.version }}/mcptools-Darwin-$(uname -m | sed 's/x86_64/x86_64/;s/arm64/arm64/')" -o mcptools && chmod +x mcptools && sudo mv mcptools /usr/local/bin/
```
### Method 3: Download with GitHub CLI
If you have the GitHub CLI installed:
```bash
# For Intel Macs
gh release download ${{ steps.version.outputs.version }} -R cloudbridgeuy/mcptools -p "mcptools-Darwin-x86_64"
# For Apple Silicon Macs
gh release download ${{ steps.version.outputs.version }} -R cloudbridgeuy/mcptools -p "mcptools-Darwin-arm64"
# Make executable and move to PATH
chmod +x mcptools-Darwin-*
sudo mv mcptools-Darwin-* /usr/local/bin/mcptools
# Verify installation
mcptools --version
```
## Platform Support
- ✅ macOS Intel (x86_64)
- ✅ macOS Apple Silicon (ARM64)
- ❌ Linux (not currently supported)
- ❌ Windows (not currently supported)
${{ steps.changelog.outputs.changelog }}
files: release-assets/*
draft: false
prerelease: false
generate_release_notes: false