CLI tool to allow setting/getting pipeline variables on Gitlab CI.
Supports Gitlab API v4, available since Gitlab 9.0.
Install the tool globally for ease of use, by running the following command
$ npm install -g gitlab-ci-variables-cliRun the following command, where:
gitlab-tokenis your Gitlab personal access tokengitlab-project-urlis your project url on gitlab, e.g. https://gitlab.com/gitlab-org/gitlab-cekeyis the variable you want to setvalueis the value of the variable you want to set
$ glci set --token <gitlab-token> --url <gitlab-project-url> --key <key> --value <value>
Set <key> = <value> for gitlab-org/gitlab-ce.
Completed setting variable on Gitlab CI.Put all required variable key/values on a properties file named gitlab.env.yml, e.g:
AWS_CREDENTIALS: |
[canary]
aws_access_key_id = AKIA1234
aws_secret_access_key = verySecretKey
NPM_INSTALL_TOKEN: 123456789Note that the value for
AWS_CREDENTIALSis a multi line string (with spaces and no tabs).
Run the following command from the directory that contains the properties file.
$ glci setAll --token <gitlab-token> --url <gitlab-project-url>
Set AWS_CREDENTIALS = <value> for gitlab-org/gitlab-ce.
Set NPM_INSTALL_TOKEN = <value> for gitlab-org/gitlab-ce.
Completed setting variables on Gitlab CI.gitlab-tokenis your Gitlab personal access tokengitlab-project-urlis your project url on gitlab, e.g. https://gitlab.com/gitlab-org/gitlab-ce
Download all variable key/value pairs to a properties file.
Run the following command:
$ glci getAll --token <gitlab-token> --url <gitlab-project-url> --output result.yml
Downloaded variables from Gitlab CI.
Saved variables to result.ymlgitlab-tokenis your Gitlab personal access tokengitlab-project-urlis your project url on gitlab, e.g. https://gitlab.com/gitlab-org/gitlab-ce
Note that if you do not specify
output, then the properties file will be saved togitlab.env.ymlin the current directory.
By default, existing variables on Gitlab CI will be overridden. If you wish to ignore existing variables, add a --do-not-force option, e.g:
$ glci setAll --token <gitlab-token> --url <gitlab-project-url> --do-not-force
Skipping AWS_CREDENTIALS, already set for gitlab-org/gitlab-ce.
Skipping NPM_INSTALL_TOKEN, already set for gitlab-org/gitlab-ce.
Completed setting variables on Gitlab CI.If your working directory is a git repository of your project, the --url option can be omitted, e.g:
$ glci set --token <gitlab-token> --key <key> --value <value>
No URL specified, using git remote `origin`.
Set <key> = <value> for gitlab-org/gitlab-ce.
Completed setting variable on Gitlab CI.Omitting
--urlwill derive the URL from the remote namedorigin.
This project supports .gitlabrc files using rc.
If --token is not specified, this project can use a .gitlabrc, e.g:
token = this-is-my-gitlab-token$ glci setAll --url <gitlab-project-url>
Using token from .gitlabrc.
Set AWS_CREDENTIALS = <value> for gitlab-org/gitlab-ce.
Set NPM_INSTALL_TOKEN = <value> for gitlab-org/gitlab-ce.
Completed setting variables on Gitlab CI.Alternatively, you can also set a GITLAB_TOKEN environment variable:
$ export GITLAB_TOKEN=this-is-my-gitlab-token
$ glci set --url <gitlab-project-url> --key <key> --value <value>
Using token from environment variable GITLAB_TOKEN.
Set <key> = <value> for gitlab-org/gitlab-ce.
Completed setting variable on Gitlab CI.Essentially, if your project is a git repository, and you have a .gitlabrc file or a GITLAB_TOKEN env variable,
this tool can be invoked simply as:
$ glci setAll
Using token from .gitlabrc.
No URL specified, using git remote `origin`.
Set AWS_CREDENTIALS = <value> for gitlab-org/gitlab-ce.
Set NPM_INSTALL_TOKEN = <value> for gitlab-org/gitlab-ce.
Completed setting variables on Gitlab CI.$ glci set --key <key> --value <value>
Using token from environment variable GITLAB_TOKEN.
No URL specified, using git remote `origin`.
Set <key> = <value> for gitlab-org/gitlab-ce.
Completed setting variable on Gitlab CI.