GitLab Release CLI tool

The GitLab Release CLI (release-cli) tool is a command-line tool for managing releases from the command line or from a CI/CD pipeline. You can use the release CLI to create, update, modify, and delete releases.

When you use a CI/CD job to create a release, the release keyword entries are transformed into Bash commands and sent to the Docker container containing the release-cli tool. The tool then creates the release.

You can also call the release-cli tool directly from a script. For example:

release-cli create --name "Release $CI_COMMIT_SHA" --description \
  "Created using the release-cli $EXTRA_DESCRIPTION" \
  --tag-name "v${MAJOR}.${MINOR}.${REVISION}" --ref "$CI_COMMIT_SHA" \
  --released-at "2020-07-15T08:00:00Z" --milestone "m1" --milestone "m2" --milestone "m3" \
  --assets-link "{\"name\":\"asset1\",\"url\":\"https://example.com/assets/1\",\"link_type\":\"other\"}

Install the release-cli for the Shell executor (FREE)

When you use a runner with the Shell executor, you can download and install the release-cli manually for your supported OS and architecture. Once installed, the release keyword is available to use in your CI/CD jobs.

Install on Unix/Linux

  1. Download the binary for your system from S3, in the following example for amd64 systems:

    curl --location --output /usr/local/bin/release-cli "https://release-cli-downloads.s3.amazonaws.com/latest/release-cli-linux-amd64"

    Or from the GitLab Package Registry:

    curl --location --output /usr/local/bin/release-cli "https://gitlab.com/api/v4/projects/gitlab-org%2Frelease-cli/packages/generic/release-cli/latest/release-cli-linux-amd64"
  2. Give it permissions to execute:

    sudo chmod +x /usr/local/bin/release-cli
  3. Verify release-cli is available:

    $ release-cli -v
    
    release-cli version 0.6.0

Install on Windows PowerShell

  1. Create a folder somewhere in your system, for example C:\GitLab\Release-CLI\bin

    New-Item -Path 'C:\GitLab\Release-CLI\bin' -ItemType Directory
  2. Download the executable file:

    PS C:\> Invoke-WebRequest -Uri "https://release-cli-downloads.s3.amazonaws.com/latest/release-cli-windows-amd64.exe" -OutFile "C:\GitLab\Release-CLI\bin\release-cli.exe"
    
        Directory: C:\GitLab\Release-CLI
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----        3/16/2021   4:17 AM                bin
  3. Add the directory to your $env:PATH:

    $env:PATH += ";C:\GitLab\Release-CLI\bin"
  4. Verify release-cli is available:

    PS C:\> release-cli -v
    
    release-cli version 0.6.0