name: Publish zed-extension CLI

on:
  push:
    tags:
      - extension-cli

env:
  CARGO_TERM_COLOR: always
  CARGO_INCREMENTAL: 0

jobs:
  publish:
    name: Publish zed-extension CLI
    runs-on:
      - ubuntu-latest
    steps:
      - name: Checkout repo
        uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4
        with:
          clean: false

      - name: Cache dependencies
        uses: swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # v2
        with:
          save-if: ${{ github.ref == 'refs/heads/main' }}
          cache-provider: "github"

      - name: Configure linux
        shell: bash -euxo pipefail {0}
        run: script/linux

      - name: Build extension CLI
        run: cargo build --release --package extension_cli

      - name: Upload binary
        env:
          DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }}
          DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }}
        run: script/upload-extension-cli ${{ github.sha }}
