name: Release on: push: tags: - 'v*' env: CARGO_TERM_COLOR: always CARGO_INCREMENTAL: 0 jobs: build: strategy: fail-fast: false matrix: include: # macOS ARM64 (Apple Silicon) - Intel macOS dropped, no free runners after macos-13 retirement - target: aarch64-apple-darwin os: macos-latest # Linux x86_64 - ARM64 Linux dropped (cross-compile OpenSSL issues), users can build from source - target: x86_64-unknown-linux-gnu os: ubuntu-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Build binary uses: houseabsolute/actions-rust-cross@v1 with: command: build target: ${{ matrix.target }} args: "--locked --release --package vestige-mcp" strip: true - name: Package run: | mkdir -p dist cp target/${{ matrix.target }}/release/vestige-mcp dist/ 2>/dev/null || true cp target/${{ matrix.target }}/release/vestige dist/ 2>/dev/null || true cd dist if [ -f vestige-mcp ]; then tar czf vestige-mcp-${{ matrix.target }}.tar.gz vestige-mcp vestige 2>/dev/null || tar czf vestige-mcp-${{ matrix.target }}.tar.gz vestige-mcp fi - name: Upload artifact uses: actions/upload-artifact@v4 with: name: vestige-mcp-${{ matrix.target }} path: dist/vestige-mcp-${{ matrix.target }}.tar.gz release: needs: build runs-on: ubuntu-latest steps: - name: Download all artifacts uses: actions/download-artifact@v4 with: path: artifacts - name: Create Release uses: softprops/action-gh-release@v1 with: files: artifacts/**/*.tar.gz generate_release_notes: true