97 lines
3.5 KiB
Markdown
97 lines
3.5 KiB
Markdown
---
|
|
stage: Deploy
|
|
group: Environments
|
|
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
|
---
|
|
|
|
|
|
# GitLab Release CLI tool
|
|
|
|
The [GitLab Release CLI (`release-cli`)](https://gitlab.com/gitlab-org/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](index.md#creating-a-release-by-using-a-cicd-job),
|
|
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`](../../../ci/yaml/index.md#script).
|
|
For example:
|
|
|
|
```shell
|
|
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)**
|
|
|
|
> - [Introduced](https://gitlab.com/gitlab-org/release-cli/-/issues/21) in GitLab 13.8.
|
|
> - [Changed](https://gitlab.com/gitlab-org/release-cli/-/merge_requests/108) in GitLab 14.2, the `release-cli` binaries are also [available in the Package Registry](https://gitlab.com/gitlab-org/release-cli/-/packages).
|
|
|
|
When you use a runner with the Shell executor, you can download and install
|
|
the `release-cli` manually for your [supported OS and architecture](https://release-cli-downloads.s3.amazonaws.com/latest/index.html).
|
|
Once installed, [the `release` keyword](../../../ci/yaml/index.md#release) 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:
|
|
|
|
```shell
|
|
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:
|
|
|
|
```shell
|
|
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"
|
|
```
|
|
|
|
1. Give it permissions to execute:
|
|
|
|
```shell
|
|
sudo chmod +x /usr/local/bin/release-cli
|
|
```
|
|
|
|
1. Verify `release-cli` is available:
|
|
|
|
```shell
|
|
$ 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`
|
|
|
|
```shell
|
|
New-Item -Path 'C:\GitLab\Release-CLI\bin' -ItemType Directory
|
|
```
|
|
|
|
1. Download the executable file:
|
|
|
|
```shell
|
|
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
|
|
```
|
|
|
|
1. Add the directory to your `$env:PATH`:
|
|
|
|
```shell
|
|
$env:PATH += ";C:\GitLab\Release-CLI\bin"
|
|
```
|
|
|
|
1. Verify `release-cli` is available:
|
|
|
|
```shell
|
|
PS C:\> release-cli -v
|
|
|
|
release-cli version 0.6.0
|
|
```
|