Skip to content

feat(ci): add release workflow to fulll/gh-gcs #95

@shouze

Description

@shouze

Context

Part of the gh-gcs epic (#93).

fulll/gh-gcs needs a release workflow that downloads the pre-compiled binaries from a fulll/github-code-search release, renames them to match the gh extension naming convention, and publishes a new release.

Goal

Create .github/workflows/release.yml in fulll/gh-gcs with the following logic:

Trigger

on:
  repository_dispatch:
    types: [new-release]
  workflow_dispatch:
    inputs:
      version:
        description: "Version tag (e.g. v1.8.1)"
        required: true

Steps

  1. Determine the version (github.event.client_payload.version or inputs.version)
  2. Download all binaries from fulll/github-code-search@<version> using gh release download
  3. Rename each asset according to the mapping:
Downloaded Renamed to
github-code-search-linux-x64 gh-gcs-linux-amd64
github-code-search-linux-arm64 gh-gcs-linux-arm64
github-code-search-macos-x64 gh-gcs-darwin-amd64
github-code-search-macos-arm64 gh-gcs-darwin-arm64
github-code-search-windows-x64.exe gh-gcs-windows-amd64.exe
  1. Create a release <version> in fulll/gh-gcs with gh release create and attach all renamed binaries
  2. Use generate_release_notes: false and copy the body from the source release

Permissions required

  • GH_TOKEN with contents: write on fulll/gh-gcs
  • Read access to fulll/github-code-search releases (public repo, no extra token needed)

Acceptance criteria

  • Workflow can be triggered manually (workflow_dispatch) for any existing version
  • Renamed binaries follow the gh-gcs-<os>-<arch> convention exactly
  • gh extension install fulll/gh-gcs resolves and installs the correct binary on each supported platform
  • gh extension upgrade gh-gcs picks up the new release

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions