簡體   English   中英

通過 UI 設置 Gitlab CI/CD 環境變量

[英]Setup Gitlab CI/CD environment variables via UI

我是 gitlab CI/CD 設置的新手。 我不想將敏感憑據(如 API 密鑰、密碼...)放入我的分支。 為此,GitLab(和其他 CI/CD 服務)能夠設置環境變量。

到目前為止我做了什么:

  1. 通過 UI(項目 ⇒ 設置 ⇒ CI/CD ⇒ 變量)

    首先轉到 Project ⇒ Settings ⇒ CI/CD ⇒ Variables 並像這樣添加它們:在此處輸入圖像描述

    現在在這里嘗試獲取包含所有配置值的文件(例如使用 dotenv)。

     require("dotenv"); module.exports = process.env.NODE_ENV.trim() === "production" ? _config.production : _config.development;

當前 .gitlab-ci.yaml 文件是:

image: node:8.9.0

cache:
  paths:
   - node_modules/

stages:
 - ver
 - init
 - test
 - build
 - deploy

 ver:
   stage: ver
   script:
   - node -v

init:
  stage: init-dev
  script:
   - npm install
  tags:
   - dev_server
  only:
   - dev  
  variables:
    ENV_PRODUCTION: "/builds/AkdiD/8/abcde/projectName/ENV_PRODUCTION" 
   
test:
   stage: test
   script:
    - npm test

build:
 stage: build
 script:
  - echo "BUILD_VERSION=production" >> build.env
 artifacts:
   reports:
   dotenv: build.env   

 deploy:
   stage: deploy-dev
   script:
    - npm run killcurrent
    - echo $ENV_PRODUCTION
    - echo $BUILD_VERSION
    - npm run staging
   tags:
    - dev_server
   only:
    - dev

問題:我需要在哪里保留這個ENV_PRODUCTION文件名(yaml 文件或其他地方),以便服務器采用該值?

像這樣編輯變量 -仍然服務器它不獲取這些變量。 我應該在 .gitlab-ci.yml 文件中更改/放入一些東西嗎?

在此處輸入圖片說明

設置文件類型自定義環境變量(GitLab 11.11+)似乎不是引用/設置變量列表的方法,包括具有敏感信息的變量。
文件類型的變量通常用於表示例如證書。

您應該定義變量,可能是組級環境變量

您可以定義在管道環境中設置的每個項目或每個組的變量。
組級變量存儲在存儲庫之外(不在.gitlab-ci.yml )並安全地傳遞給 GitLab Runner,這使得它們在管道運行期間可用。
對於不使用外部密鑰存儲或使用 GitLab 與 HashiCorp Vault 集成的高級用戶,我們建議使用組環境變量來存儲密碼、SSH 密鑰和憑據等秘密。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM