สเตจของ GitLab เพียงจัดกลุ่มงานเท่านั้น ไม่ได้มีสภาพแวดล้อมโปรเซสแยกของตัวเอง ให้วางตัวแปรพร็อกซีไว้บนงานที่ต้องใช้ หรือจะผ่านเทมเพลตที่ซ่อนไว้ซึ่งนำกลับมาใช้ได้ก็ได้:

.proxy-environment:
  variables:
    HTTP_PROXY: "$CODE_PROXY"
    HTTPS_PROXY: "$CODE_PROXY"
    NO_PROXY: "localhost,127.0.0.1"

external_check:
  extends: .proxy-environment
  stage: test
  script:
    - python ci/check_external_service.py

CODE_PROXY มาจากการจัดการตัวแปรที่มีอยู่แล้วของโปรเจกต์ สำหรับงานที่ได้รับอนุญาตให้เข้าถึงบริการสาธารณะผ่านพร็อกซีสาธารณะ ค่าของมันสามารถใช้ปลายทาง HTTP จากรายการพร็อกซี HTTPได้ คำสั่ง Python เป็นเพียงตัวอย่างงานของโปรเจกต์ งานอื่นข้ามเทมเพลตนี้ได้ และหลายงานในสเตจเดียวกันเลือกสภาพแวดล้อมต่างกันได้

อย่าใส่ชื่อพร็อกซีเหล่านี้ไว้ในค่าเริ่มต้น YAML ระดับบนสุด หากไม่ต้องการให้สืบทอดกันในวงกว้าง ควรตรวจตัวแปรระดับโปรเจกต์ กลุ่ม และไปป์ไลน์ด้วย เพราะลำดับความสำคัญของมันอาจเขียนทับค่าของงานใน YAML ได้

inherit:variables ควบคุมการสืบทอดตัวแปรเริ่มต้นใน YAML แต่ไม่ได้ลบตัวแปร CI/CD ของโปรเจกต์หรือกลุ่ม จึงไม่ใช่สวิตช์ทั่วไปสำหรับลบแหล่งพร็อกซีทั้งหมด

การตั้งค่านี้มีผลกับโปรเซสของงาน ไคลเอนต์ HTTP ที่เริ่มภายในงานต้องรองรับตัวแปรเหล่านี้ ส่วนการเชื่อมต่อดึงอิมเมจก่อนหน้านั้นของ runner มีการตั้งค่าแยกของตัวเอง

บทความที่เกี่ยวข้อง