feat(plugin): context-aware auto-adopt (C') + adopt CLI subcommand (v… #102
Workflow file for this run
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
| name: Release | |
| on: | |
| push: | |
| tags: ['v*'] | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| name: Build ${{ matrix.npm-pkg }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - target: x86_64-unknown-linux-gnu | |
| os: ubuntu-latest | |
| npm-pkg: linux-x64 | |
| binary: code-graph-mcp | |
| - target: aarch64-unknown-linux-gnu | |
| os: ubuntu-latest | |
| npm-pkg: linux-arm64 | |
| binary: code-graph-mcp | |
| - target: x86_64-apple-darwin | |
| os: macos-latest | |
| npm-pkg: darwin-x64 | |
| binary: code-graph-mcp | |
| - target: aarch64-apple-darwin | |
| os: macos-latest | |
| npm-pkg: darwin-arm64 | |
| binary: code-graph-mcp | |
| - target: x86_64-pc-windows-msvc | |
| os: windows-latest | |
| npm-pkg: win32-x64 | |
| binary: code-graph-mcp.exe | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.target }} | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: ${{ matrix.target }} | |
| - name: Install cross-compilation tools | |
| if: matrix.target == 'aarch64-unknown-linux-gnu' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y gcc-aarch64-linux-gnu | |
| echo 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc' >> $GITHUB_ENV | |
| - name: Build | |
| run: cargo build --release --target ${{ matrix.target }} | |
| - name: Upload binary | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: binary-${{ matrix.npm-pkg }} | |
| path: target/${{ matrix.target }}/release/${{ matrix.binary }} | |
| publish: | |
| name: Publish | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| registry-url: https://registry.npmjs.org | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts/ | |
| - name: Set version from tag | |
| run: | | |
| VERSION=${GITHUB_REF_NAME#v} | |
| echo "VERSION=$VERSION" >> $GITHUB_ENV | |
| - name: Prepare platform packages | |
| run: | | |
| for pkg in linux-x64 linux-arm64 darwin-x64 darwin-arm64; do | |
| cp artifacts/binary-$pkg/code-graph-mcp npm/$pkg/ | |
| chmod +x npm/$pkg/code-graph-mcp | |
| done | |
| cp artifacts/binary-win32-x64/code-graph-mcp.exe npm/win32-x64/ | |
| - name: Update versions | |
| run: node scripts/sync-versions.js $VERSION | |
| - name: Release smoke test | |
| run: node --test scripts/release-smoke.test.js | |
| - name: Publish platform packages | |
| run: | | |
| for pkg in linux-x64 linux-arm64 darwin-x64 darwin-arm64 win32-x64; do | |
| cd npm/$pkg | |
| npm publish --access public 2>&1 || echo "::warning::$pkg publish failed (may already exist)" | |
| cd ../.. | |
| done | |
| env: | |
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| - name: Publish main package | |
| run: npm publish --access public 2>&1 || echo "::warning::main package publish failed (may already exist)" | |
| env: | |
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| - name: Prepare release assets | |
| run: | | |
| mkdir -p release-assets | |
| for pkg in linux-x64 linux-arm64 darwin-x64 darwin-arm64; do | |
| cp artifacts/binary-$pkg/code-graph-mcp release-assets/code-graph-mcp-$pkg | |
| done | |
| cp artifacts/binary-win32-x64/code-graph-mcp.exe release-assets/code-graph-mcp-win32-x64.exe | |
| - name: Package model files | |
| run: | | |
| mkdir -p models-pkg | |
| for f in model.safetensors tokenizer.json config.json; do | |
| curl -L -o models-pkg/$f \ | |
| "https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2/resolve/main/$f" | |
| done | |
| tar czf release-assets/models.tar.gz -C models-pkg . | |
| sha256sum release-assets/models.tar.gz | cut -d' ' -f1 > release-assets/models.tar.gz.sha256 | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| generate_release_notes: true | |
| files: release-assets/* |