Một stage trong GitLab chỉ nhóm các job lại; bản thân stage không có môi trường tiến trình riêng. Hãy đặt biến proxy trên những job thực sự cần, có thể thông qua một job mẫu ẩn dùng lại được:

.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 được cung cấp qua cơ chế quản lý biến sẵn có của dự án. Với những job được phép truy cập dịch vụ công khai qua proxy công khai, giá trị của nó có thể dùng một endpoint HTTP trong danh sách proxy HTTP. Lệnh Python ở đây chỉ là một tác vụ minh họa của dự án. Các job khác có thể bỏ qua mẫu này, và nhiều job trong cùng một stage có thể chọn những môi trường khác nhau.

Đừng đưa các tên proxy này vào phần mặc định YAML cấp cao nhất nếu chúng không nên được kế thừa rộng rãi. Cũng nên kiểm tra biến ở cấp dự án, nhóm và pipeline: thứ tự ưu tiên của chúng có thể ghi đè giá trị YAML của job.

inherit:variables quyết định việc kế thừa các biến mặc định trong YAML. Nó không xóa biến CI/CD của dự án hay nhóm, nên không phải công tắc chung để loại bỏ mọi nguồn proxy.

Phần cấu hình này áp dụng cho tiến trình của job. Ứng dụng HTTP khởi chạy bên trong phải hỗ trợ các biến đó, còn kết nối kéo image trước đó của runner có cấu hình riêng.

Bài viết liên quan