Rename BUILD to JOB in CI Variables
Given GitLab moves away from using the term build, everywhere, also the CI variables are being renamed. For now, both `CI_BUILD_X` and `CI_JOB_X` are supported, with the same values. However, in about 3 months, support will be dropped.
This commit is contained in:
parent
df55d35ffd
commit
9c25404ac0
5 changed files with 114 additions and 50 deletions
|
@ -543,10 +543,35 @@ module Ci
|
|||
@unscoped_project ||= Project.unscoped.find_by(id: gl_project_id)
|
||||
end
|
||||
|
||||
CI_REGISTRY_USER = 'gitlab-ci-token'.freeze
|
||||
|
||||
def predefined_variables
|
||||
variables = [
|
||||
{ key: 'CI', value: 'true', public: true },
|
||||
{ key: 'GITLAB_CI', value: 'true', public: true },
|
||||
{ key: 'CI_SERVER_NAME', value: 'GitLab', public: true },
|
||||
{ key: 'CI_SERVER_VERSION', value: Gitlab::VERSION, public: true },
|
||||
{ key: 'CI_SERVER_REVISION', value: Gitlab::REVISION, public: true },
|
||||
{ key: 'CI_JOB_ID', value: id.to_s, public: true },
|
||||
{ key: 'CI_JOB_NAME', value: name, public: true },
|
||||
{ key: 'CI_JOB_STAGE', value: stage, public: true },
|
||||
{ key: 'CI_JOB_TOKEN', value: token, public: false },
|
||||
{ key: 'CI_COMMIT_REF', value: sha, public: true },
|
||||
{ key: 'CI_COMMIT_REF_NAME', value: ref, public: true },
|
||||
{ key: 'CI_COMMIT_REF_SLUG', value: ref_slug, public: true },
|
||||
{ key: 'CI_REGISTRY_USER', value: CI_REGISTRY_USER, public: true },
|
||||
{ key: 'CI_REGISTRY_PASSWORD', value: token, public: false },
|
||||
{ key: 'CI_REPOSITORY_URL', value: repo_url, public: false }
|
||||
]
|
||||
|
||||
variables << { key: "CI_COMMIT_TAG", value: ref, public: true } if tag?
|
||||
variables << { key: "CI_PIPELINE_TRIGGERED", value: 'true', public: true } if trigger_request
|
||||
variables << { key: "CI_JOB_MANUAL", value: 'true', public: true } if action?
|
||||
variables.concat(legacy_variables)
|
||||
end
|
||||
|
||||
def legacy_variables
|
||||
variables = [
|
||||
{ key: 'CI_BUILD_ID', value: id.to_s, public: true },
|
||||
{ key: 'CI_BUILD_TOKEN', value: token, public: false },
|
||||
{ key: 'CI_BUILD_REF', value: sha, public: true },
|
||||
|
@ -554,14 +579,12 @@ module Ci
|
|||
{ key: 'CI_BUILD_REF_NAME', value: ref, public: true },
|
||||
{ key: 'CI_BUILD_REF_SLUG', value: ref_slug, public: true },
|
||||
{ key: 'CI_BUILD_NAME', value: name, public: true },
|
||||
{ key: 'CI_BUILD_STAGE', value: stage, public: true },
|
||||
{ key: 'CI_SERVER_NAME', value: 'GitLab', public: true },
|
||||
{ key: 'CI_SERVER_VERSION', value: Gitlab::VERSION, public: true },
|
||||
{ key: 'CI_SERVER_REVISION', value: Gitlab::REVISION, public: true }
|
||||
{ key: 'CI_BUILD_STAGE', value: stage, public: true }
|
||||
]
|
||||
variables << { key: 'CI_BUILD_TAG', value: ref, public: true } if tag?
|
||||
variables << { key: 'CI_BUILD_TRIGGERED', value: 'true', public: true } if trigger_request
|
||||
variables << { key: 'CI_BUILD_MANUAL', value: 'true', public: true } if action?
|
||||
|
||||
variables << { key: "CI_BUILD_TAG", value: ref, public: true } if tag?
|
||||
variables << { key: "CI_BUILD_TRIGGERED", value: 'true', public: true } if trigger_request
|
||||
variables << { key: "CI_BUILD_MANUAL", value: 'true', public: true } if action?
|
||||
variables
|
||||
end
|
||||
|
||||
|
|
4
changelogs/unreleased/zj-variables-build-job.yml
Normal file
4
changelogs/unreleased/zj-variables-build-job.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Rename job environment variables to new terminology
|
||||
merge_request: 9756
|
||||
author:
|
|
@ -61,6 +61,7 @@ ActiveRecord::Schema.define(version: 20170306170512) do
|
|||
t.boolean "shared_runners_enabled", default: true, null: false
|
||||
t.integer "max_artifacts_size", default: 100, null: false
|
||||
t.string "runners_registration_token"
|
||||
t.integer "max_pages_size", default: 100, null: false
|
||||
t.boolean "require_two_factor_authentication", default: false
|
||||
t.integer "two_factor_grace_period", default: 48
|
||||
t.boolean "metrics_enabled", default: false
|
||||
|
@ -109,7 +110,6 @@ ActiveRecord::Schema.define(version: 20170306170512) do
|
|||
t.boolean "html_emails_enabled", default: true
|
||||
t.string "plantuml_url"
|
||||
t.boolean "plantuml_enabled"
|
||||
t.integer "max_pages_size", default: 100, null: false
|
||||
t.integer "terminal_max_session_time", default: 0, null: false
|
||||
t.string "default_artifacts_expire_in", default: "0", null: false
|
||||
t.integer "unique_ips_limit_per_user"
|
||||
|
@ -771,8 +771,8 @@ ActiveRecord::Schema.define(version: 20170306170512) do
|
|||
t.integer "visibility_level", default: 20, null: false
|
||||
t.boolean "request_access_enabled", default: false, null: false
|
||||
t.datetime "deleted_at"
|
||||
t.boolean "lfs_enabled"
|
||||
t.text "description_html"
|
||||
t.boolean "lfs_enabled"
|
||||
t.integer "parent_id"
|
||||
end
|
||||
|
||||
|
|
|
@ -35,17 +35,28 @@ version of Runner required.
|
|||
| **CI_SERVER_NAME** | all | all | The name of CI server that is used to coordinate jobs |
|
||||
| **CI_SERVER_VERSION** | all | all | GitLab version that is used to schedule jobs |
|
||||
| **CI_SERVER_REVISION** | all | all | GitLab revision that is used to schedule jobs |
|
||||
| **CI_BUILD_ID** | all | all | The unique id of the current job that GitLab CI uses internally |
|
||||
| **CI_BUILD_REF** | all | all | The commit revision for which project is built |
|
||||
| **CI_BUILD_TAG** | all | 0.5 | The commit tag name. Present only when building tags. |
|
||||
| **CI_BUILD_NAME** | all | 0.5 | The name of the job as defined in `.gitlab-ci.yml` |
|
||||
| **CI_BUILD_STAGE** | all | 0.5 | The name of the stage as defined in `.gitlab-ci.yml` |
|
||||
| **CI_BUILD_REF_NAME** | all | all | The branch or tag name for which project is built |
|
||||
| **CI_BUILD_REF_SLUG** | 8.15 | all | `$CI_BUILD_REF_NAME` lowercased, shortened to 63 bytes, and with everything except `0-9` and `a-z` replaced with `-`. Use in URLs and domain names. |
|
||||
| **CI_BUILD_REPO** | all | all | The URL to clone the Git repository |
|
||||
| **CI_BUILD_TRIGGERED** | all | 0.5 | The flag to indicate that job was [triggered] |
|
||||
| **CI_BUILD_MANUAL** | 8.12 | all | The flag to indicate that job was manually started |
|
||||
| **CI_BUILD_TOKEN** | all | 1.2 | Token used for authenticating with the GitLab Container Registry |
|
||||
| **CI_BUILD_ID** | all | all | The unique id of the current job that GitLab CI uses internally. Deprecated, use CI_JOB_ID |
|
||||
| **CI_JOB_ID** | 9.0 | all | The unique id of the current job that GitLab CI uses internally |
|
||||
| **CI_BUILD_REF** | all | all | The commit revision for which project is built. Deprecated, use CI_COMMIT_REF |
|
||||
| **CI_COMMIT_REF** | 9.0 | all | The commit revision for which project is built |
|
||||
| **CI_BUILD_TAG** | all | 0.5 | The commit tag name. Present only when building tags. Deprecated, use CI_COMMIT_TAG |
|
||||
| **CI_COMMIT_TAG** | 9.0 | 0.5 | The commit tag name. Present only when building tags. |
|
||||
| **CI_BUILD_NAME** | all | 0.5 | The name of the job as defined in `.gitlab-ci.yml`. Deprecated, use CI_JOB_NAME |
|
||||
| **CI_JOB_NAME** | 9.0 | 0.5 | The name of the job as defined in `.gitlab-ci.yml` |
|
||||
| **CI_BUILD_STAGE** | all | 0.5 | The name of the stage as defined in `.gitlab-ci.yml`. Deprecated, use CI_JOB_STAGE |
|
||||
| **CI_JOB_STAGE** | 9.0 | 0.5 | The name of the stage as defined in `.gitlab-ci.yml` |
|
||||
| **CI_BUILD_REF_NAME** | all | all | The branch or tag name for which project is built. Deprecated, use CI_COMMIT_REF_NAME |
|
||||
| **CI_COMMIT_REF_NAME** | 9.0 | all | The branch or tag name for which project is built |
|
||||
| **CI_BUILD_REF_SLUG** | 8.15 | all | `$CI_COMMIT_REF_NAME` lowercased, shortened to 63 bytes, and with everything except `0-9` and `a-z` replaced with `-`. Use in URLs and domain names. Deprecated, use CI_COMMIT_REF_SLUG |
|
||||
| **CI_COMMIT_REF_SLUG** | 9.0 | all | `$CI_COMMIT_REF_NAME` lowercased, shortened to 63 bytes, and with everything except `0-9` and `a-z` replaced with `-`. Use in URLs and domain names. |
|
||||
| **CI_BUILD_REPO** | all | all | The URL to clone the Git repository. Deprecated, use CI_REPOSITORY |
|
||||
| **CI_REPOSITORY_URL** | 9.0 | all | The URL to clone the Git repository |
|
||||
| **CI_BUILD_TRIGGERED** | all | 0.5 | The flag to indicate that job was [triggered]. Deprecated, use CI_PIPELINE_TRIGGERED |
|
||||
| **CI_PIPELINE_TRIGGERED** | all | all | The flag to indicate that job was [triggered] |
|
||||
| **CI_BUILD_MANUAL** | 8.12 | all | The flag to indicate that job was manually started. Deprecated, use CI_JOB_MANUAL |
|
||||
| **CI_JOB_MANUAL** | 8.12 | all | The flag to indicate that job was manually started |
|
||||
| **CI_BUILD_TOKEN** | all | 1.2 | Token used for authenticating with the GitLab Container Registry. Deprecated, use CI_JOB_TOKEN |
|
||||
| **CI_JOB_TOKEN** | 9.0 | 1.2 | Token used for authenticating with the GitLab Container Registry |
|
||||
| **CI_PIPELINE_ID** | 8.10 | 0.5 | The unique id of the current pipeline that GitLab CI uses internally |
|
||||
| **CI_PROJECT_ID** | all | all | The unique id of the current project that GitLab CI uses internally |
|
||||
| **CI_PROJECT_NAME** | 8.10 | 0.5 | The project name that is currently being built |
|
||||
|
@ -66,21 +77,22 @@ version of Runner required.
|
|||
| **RESTORE_CACHE_ATTEMPTS** | 8.15 | 1.9 | Number of attempts to restore the cache running a job |
|
||||
| **GITLAB_USER_ID** | 8.12 | all | The id of the user who started the job |
|
||||
| **GITLAB_USER_EMAIL** | 8.12 | all | The email of the user who started the job |
|
||||
|
||||
| **CI_REGISTRY_USER** | 9.0 | all | The username to use to push containers to the GitLab Container Registry |
|
||||
| **CI_REGISTRY_PASSWORD** | 9.0 | all | The password to use to push containers to the GitLab Container Registry |
|
||||
|
||||
Example values:
|
||||
|
||||
```bash
|
||||
export CI_BUILD_ID="50"
|
||||
export CI_BUILD_REF="1ecfd275763eff1d6b4844ea3168962458c9f27a"
|
||||
export CI_BUILD_REF_NAME="master"
|
||||
export CI_BUILD_REPO="https://gitab-ci-token:abcde-1234ABCD5678ef@example.com/gitlab-org/gitlab-ce.git"
|
||||
export CI_BUILD_TAG="1.0.0"
|
||||
export CI_BUILD_NAME="spec:other"
|
||||
export CI_BUILD_STAGE="test"
|
||||
export CI_BUILD_MANUAL="true"
|
||||
export CI_BUILD_TRIGGERED="true"
|
||||
export CI_BUILD_TOKEN="abcde-1234ABCD5678ef"
|
||||
export CI_JOB_ID="50"
|
||||
export CI_COMMIT_REF="1ecfd275763eff1d6b4844ea3168962458c9f27a"
|
||||
export CI_COMMIT_REF_NAME="master"
|
||||
export CI_REPOSITORY="https://gitab-ci-token:abcde-1234ABCD5678ef@example.com/gitlab-org/gitlab-ce.git"
|
||||
export CI_COMMIT_TAG="1.0.0"
|
||||
export CI_JOB_NAME="spec:other"
|
||||
export CI_JOB_STAGE="test"
|
||||
export CI_JOB_MANUAL="true"
|
||||
export CI_JOB_TRIGGERED="true"
|
||||
export CI_JOB_TOKEN="abcde-1234ABCD5678ef"
|
||||
export CI_PIPELINE_ID="1000"
|
||||
export CI_PROJECT_ID="34"
|
||||
export CI_PROJECT_DIR="/builds/gitlab-org/gitlab-ce"
|
||||
|
@ -99,8 +111,30 @@ export CI_SERVER_REVISION="70606bf"
|
|||
export CI_SERVER_VERSION="8.9.0"
|
||||
export GITLAB_USER_ID="42"
|
||||
export GITLAB_USER_EMAIL="user@example.com"
|
||||
export CI_REGISTRY_USER="gitlab-ci-token"
|
||||
export CI_REGISTRY_PASSWORD="longalfanumstring"
|
||||
```
|
||||
|
||||
## 9.0 Renaming
|
||||
|
||||
To follow conventions of naming across GitLab, and to futher move away from the
|
||||
`build` term and toward `job` CI variables have been renamed for the 9.0
|
||||
release.
|
||||
|
||||
| 8.X name | 9.0 name |
|
||||
|----------|----------|
|
||||
| CI_BUILD_ID | CI_JOB_ID |
|
||||
| CI_BUILD_REF | CI_COMMIT_SHA |
|
||||
| CI_BUILD_TAG | CI_COMMIT_TAG |
|
||||
| CI_BUILD_REF_NAME | CI_COMMIT_REF_NAME |
|
||||
| CI_BUILD_REF_SLUG | CI_COMMIT_REF_SLUG |
|
||||
| CI_BUILD_NAME | CI_JOB_NAME |
|
||||
| CI_BUILD_STAGE | CI_JOB_STAGE |
|
||||
| CI_BUILD_REPO | CI_REPOSITORY |
|
||||
| CI_BUILD_TRIGGERED | CI_PIPELINE_TRIGGERED |
|
||||
| CI_BUILD_MANUAL | CI_JOB_MANUAL |
|
||||
| CI_BUILD_TOKEN | CI_JOB_TOKEN |
|
||||
|
||||
## `.gitlab-ci.yaml` defined variables
|
||||
|
||||
>**Note:**
|
||||
|
|
|
@ -345,11 +345,11 @@ describe Ci::Build, :models do
|
|||
describe '#expanded_environment_name' do
|
||||
subject { build.expanded_environment_name }
|
||||
|
||||
context 'when environment uses $CI_BUILD_REF_NAME' do
|
||||
context 'when environment uses $CI_COMMIT_REF_NAME' do
|
||||
let(:build) do
|
||||
create(:ci_build,
|
||||
ref: 'master',
|
||||
environment: 'review/$CI_BUILD_REF_NAME')
|
||||
environment: 'review/$CI_COMMIT_REF_NAME')
|
||||
end
|
||||
|
||||
it { is_expected.to eq('review/master') }
|
||||
|
@ -915,7 +915,7 @@ describe Ci::Build, :models do
|
|||
end
|
||||
|
||||
context 'referenced with a variable' do
|
||||
let(:build) { create(:ci_build, pipeline: pipeline, environment: "foo-$CI_BUILD_REF_NAME") }
|
||||
let(:build) { create(:ci_build, pipeline: pipeline, environment: "foo-$CI_COMMIT_REF_NAME") }
|
||||
|
||||
it { is_expected.to eq(@environment) }
|
||||
end
|
||||
|
@ -1286,23 +1286,25 @@ describe Ci::Build, :models do
|
|||
[
|
||||
{ key: 'CI', value: 'true', public: true },
|
||||
{ key: 'GITLAB_CI', value: 'true', public: true },
|
||||
{ key: 'CI_BUILD_ID', value: build.id.to_s, public: true },
|
||||
{ key: 'CI_BUILD_TOKEN', value: build.token, public: false },
|
||||
{ key: 'CI_BUILD_REF', value: build.sha, public: true },
|
||||
{ key: 'CI_BUILD_BEFORE_SHA', value: build.before_sha, public: true },
|
||||
{ key: 'CI_BUILD_REF_NAME', value: 'master', public: true },
|
||||
{ key: 'CI_BUILD_REF_SLUG', value: 'master', public: true },
|
||||
{ key: 'CI_BUILD_NAME', value: 'test', public: true },
|
||||
{ key: 'CI_BUILD_STAGE', value: 'test', public: true },
|
||||
{ key: 'CI_SERVER_NAME', value: 'GitLab', public: true },
|
||||
{ key: 'CI_SERVER_VERSION', value: Gitlab::VERSION, public: true },
|
||||
{ key: 'CI_SERVER_REVISION', value: Gitlab::REVISION, public: true },
|
||||
{ key: 'CI_JOB_ID', value: build.id.to_s, public: true },
|
||||
{ key: 'CI_JOB_NAME', value: 'test', public: true },
|
||||
{ key: 'CI_JOB_STAGE', value: 'test', public: true },
|
||||
{ key: 'CI_JOB_TOKEN', value: build.token, public: false },
|
||||
{ key: 'CI_COMMIT_REF', value: build.sha, public: true },
|
||||
{ key: 'CI_COMMIT_REF_NAME', value: build.ref, public: true },
|
||||
{ key: 'CI_COMMIT_REF_SLUG', value: build.ref_slug, public: true },
|
||||
{ key: 'CI_PROJECT_ID', value: project.id.to_s, public: true },
|
||||
{ key: 'CI_PROJECT_NAME', value: project.path, public: true },
|
||||
{ key: 'CI_PROJECT_PATH', value: project.full_path, public: true },
|
||||
{ key: 'CI_PROJECT_NAMESPACE', value: project.namespace.full_path, public: true },
|
||||
{ key: 'CI_PROJECT_URL', value: project.web_url, public: true },
|
||||
{ key: 'CI_PIPELINE_ID', value: pipeline.id.to_s, public: true }
|
||||
{ key: 'CI_PIPELINE_ID', value: pipeline.id.to_s, public: true },
|
||||
{ key: 'CI_REGISTRY_USER', value: 'gitlab-ci-token', public: true },
|
||||
{ key: 'CI_REGISTRY_PASSWORD', value: build.token, public: false },
|
||||
{ key: 'CI_REPOSITORY_URL', value: build.repo_url, public: false },
|
||||
]
|
||||
end
|
||||
|
||||
|
@ -1317,7 +1319,7 @@ describe Ci::Build, :models do
|
|||
build.yaml_variables = []
|
||||
end
|
||||
|
||||
it { is_expected.to eq(predefined_variables) }
|
||||
it { is_expected.to include(*predefined_variables) }
|
||||
end
|
||||
|
||||
context 'when build has user' do
|
||||
|
@ -1355,7 +1357,7 @@ describe Ci::Build, :models do
|
|||
end
|
||||
|
||||
let(:manual_variable) do
|
||||
{ key: 'CI_BUILD_MANUAL', value: 'true', public: true }
|
||||
{ key: 'CI_JOB_MANUAL', value: 'true', public: true }
|
||||
end
|
||||
|
||||
it { is_expected.to include(manual_variable) }
|
||||
|
@ -1363,7 +1365,7 @@ describe Ci::Build, :models do
|
|||
|
||||
context 'when build is for tag' do
|
||||
let(:tag_variable) do
|
||||
{ key: 'CI_BUILD_TAG', value: 'master', public: true }
|
||||
{ key: 'CI_COMMIT_TAG', value: 'master', public: true }
|
||||
end
|
||||
|
||||
before do
|
||||
|
@ -1392,7 +1394,7 @@ describe Ci::Build, :models do
|
|||
{ key: :TRIGGER_KEY_1, value: 'TRIGGER_VALUE_1', public: false }
|
||||
end
|
||||
let(:predefined_trigger_variable) do
|
||||
{ key: 'CI_BUILD_TRIGGERED', value: 'true', public: true }
|
||||
{ key: 'CI_PIPELINE_TRIGGERED', value: 'true', public: true }
|
||||
end
|
||||
|
||||
before do
|
||||
|
@ -1416,7 +1418,7 @@ describe Ci::Build, :models do
|
|||
context 'when config is not found' do
|
||||
let(:config) { nil }
|
||||
|
||||
it { is_expected.to eq(predefined_variables) }
|
||||
it { is_expected.to include(*predefined_variables) }
|
||||
end
|
||||
|
||||
context 'when config does not have a questioned job' do
|
||||
|
@ -1428,7 +1430,7 @@ describe Ci::Build, :models do
|
|||
})
|
||||
end
|
||||
|
||||
it { is_expected.to eq(predefined_variables) }
|
||||
it { is_expected.to include(*predefined_variables) }
|
||||
end
|
||||
|
||||
context 'when config has variables' do
|
||||
|
@ -1446,7 +1448,8 @@ describe Ci::Build, :models do
|
|||
[{ key: 'KEY', value: 'value', public: true }]
|
||||
end
|
||||
|
||||
it { is_expected.to eq(predefined_variables + variables) }
|
||||
it { is_expected.to include(*predefined_variables) }
|
||||
it { is_expected.to include(*variables) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue