diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index a541979..e08ad8d 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -10,55 +10,28 @@ permissions: jobs: release: - if: github.event.pull_request.merged == true && (contains(github.event.pull_request.labels.*.name, 'release:major') || contains(github.event.pull_request.labels.*.name, 'release:minor') || contains(github.event.pull_request.labels.*.name, 'release:patch')) + # Triggers when PR with 'release' label is merged + # IMPORTANT: PR author must update version in Cargo.toml before merging + if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release') runs-on: ubuntu-latest outputs: - version: ${{ steps.new.outputs.version }} + version: ${{ steps.version.outputs.version }} steps: - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Determine version bump - id: bump - run: | - if ${{ contains(github.event.pull_request.labels.*.name, 'release:major') }}; then - echo "type=major" >> $GITHUB_OUTPUT - elif ${{ contains(github.event.pull_request.labels.*.name, 'release:minor') }}; then - echo "type=minor" >> $GITHUB_OUTPUT - else - echo "type=patch" >> $GITHUB_OUTPUT - fi - - name: Get current version - id: current + - name: Get version from Cargo.toml + id: version run: | VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/') echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "Releasing version: $VERSION" - - name: Calculate new version - id: new - run: | - IFS='.' read -r major minor patch <<< "${{ steps.current.outputs.version }}" - case "${{ steps.bump.outputs.type }}" in - major) echo "version=$((major + 1)).0.0" >> $GITHUB_OUTPUT ;; - minor) echo "version=${major}.$((minor + 1)).0" >> $GITHUB_OUTPUT ;; - patch) echo "version=${major}.${minor}.$((patch + 1))" >> $GITHUB_OUTPUT ;; - esac - - - name: Update version in Cargo.toml - run: | - sed -i 's/^version = ".*"/version = "${{ steps.new.outputs.version }}"/' Cargo.toml - - - name: Commit and tag + - name: Create and push tag run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git add Cargo.toml - git commit -m "chore: release v${{ steps.new.outputs.version }}" - git tag -a "v${{ steps.new.outputs.version }}" -m "Release v${{ steps.new.outputs.version }}" - git push origin main - git push origin "v${{ steps.new.outputs.version }}" + git tag -a "v${{ steps.version.outputs.version }}" -m "Release v${{ steps.version.outputs.version }}" + git push origin "v${{ steps.version.outputs.version }}" build: needs: release diff --git a/README.md b/README.md index 14cb771..7c0a335 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Lambda CLI -> **⚠️ UNOFFICIAL PROJECT** — This is a community-built tool, not affiliated with or endorsed by Lambda. +> [!CAUTION] +> **UNOFFICIAL PROJECT** — This is a community-built tool, not affiliated with or endorsed by Lambda. [![CI](https://github.com/Strand-AI/lambda-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/Strand-AI/lambda-cli/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) @@ -9,7 +10,7 @@ [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect/mcp/install?name=lambda-labs&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40strand-ai%2Flambda-mcp%22%5D%7D) [![Install in Cursor](https://img.shields.io/badge/Cursor-Install_Server-000000?logo=cursor&logoColor=white)](cursor://anysphere.cursor-deeplink/mcp/install?name=lambda-labs&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40strand-ai%2Flambda-mcp%22%5D%7D) -A fast CLI and MCP server for managing [Lambda](https://lambdalabs.com/) cloud GPU instances. +A fast CLI and MCP server for managing [Lambda](https://lambda.ai/) cloud GPU instances. **Two ways to use it:** - **CLI** (`lambda`) - Direct terminal commands for managing GPU instances @@ -32,7 +33,7 @@ Download from [GitHub Releases](https://github.com/Strand-AI/lambda-cli/releases ## Authentication -Get your API key from the [Lambda dashboard](https://cloud.lambdalabs.com/api-keys). +Get your API key from the [Lambda dashboard](https://cloud.lambda.ai/api-keys/cloud-api). ### Option 1: Environment Variable ```bash @@ -226,3 +227,15 @@ cargo run --bin lambda -- list cargo run --bin lambda-mcp ``` +## Releasing + +To create a release: + +1. Update the version in `Cargo.toml` +2. Create a PR with the `release` label +3. Merge the PR — this automatically: + - Creates a git tag + - Builds binaries for all platforms + - Publishes to npm + - Updates the Homebrew formula +