Как прокидывать переменные окружения в автотесты в CI?
1️⃣ Как кратко ответить
Переменные окружения в CI можно прокидывать через конфигурационные файлы CI/CD, такие как .gitlab-ci.yml или .github/workflows, используя секции env или environment. Также можно использовать секреты, которые хранятся в защищенных хранилищах CI/CD платформ, и передавать их в тесты через соответствующие механизмы платформы.
2️⃣ Подробное объяснение темы
Переменные окружения — это способ передачи конфигурационных данных в приложения, включая автотесты, без необходимости изменения кода. В контексте CI/CD (Continuous Integration/Continuous Deployment) переменные окружения позволяют передавать данные, такие как учетные данные, API-ключи или параметры конфигурации, в процессе выполнения автотестов.
Зачем это нужно
- Безопасность: Переменные окружения позволяют хранить чувствительные данные, такие как пароли и токены, вне кода, что повышает безопасность.
- Гибкость: Легко изменять конфигурацию тестов без изменения кода.
- Универсальность: Использование переменных окружения позволяет запускать тесты в разных средах (например, тестовой, продакшн) с разными параметрами.
Как это работает
Пример с GitLab CI/CD
В GitLab CI/CD переменные окружения можно задать в файле .gitlab-ci.yml. Например:
stages:
- test
variables:
BASE_URL: "https://example.com"
API_KEY: "your_api_key"
test_job:
stage: test
script:
- echo "Running tests with BASE_URL=$BASE_URL and API_KEY=$API_KEY"
- npm test
- stages: Определяет этапы пайплайна, в данном случае это этап
test. - variables: Определяет переменные окружения
BASE_URLиAPI_KEY, которые будут доступны в рамках всех джобов. - test_job: Определяет джоб, который будет выполняться на этапе
test. - script: Содержит команды, которые будут выполнены в рамках джоба. Переменные окружения используются в командах через синтаксис
$VARIABLE_NAME.
Пример с GitHub Actions
В GitHub Actions переменные окружения задаются в файле .github/workflows/workflow.yml. Например:
name: CI
on:
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
env:
BASE_URL: "https://example.com"
API_KEY: "your_api_key"
steps:
- uses: actions/checkout@v2
- name: Run tests
run: |
echo "Running tests with BASE_URL=$BASE_URL and API_KEY=$API_KEY"
npm test
- name: Имя workflow.
- on: Определяет триггеры для запуска workflow, в данном случае это пуши в ветку
main. - jobs: Определяет набор джобов, которые будут выполнены.
- env: Определяет переменные окружения
BASE_URLиAPI_KEY, которые будут доступны в рамках джобаtest. - steps: Определяет шаги, которые будут выполнены в рамках джоба. Переменные окружения используются в командах через синтаксис
$VARIABLE_NAME.
Использование секретов
Для хранения чувствительных данных, таких как пароли и токены, рекомендуется использовать секреты. В GitLab они называются "Protected Variables", а в GitHub — "Secrets". Эти данные хранятся в зашифрованном виде и могут быть использованы в пайплайнах.
Пример использования секретов в GitHub Actions
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
env:
API_KEY: ${{ secrets.API_KEY }}
run: |
echo "Running tests with API_KEY=$API_KEY"
npm test
- secrets.API_KEY: Использует секрет
API_KEY, который был предварительно добавлен в настройки репозитория GitHub.
Таким образом, переменные окружения и секреты позволяют гибко и безопасно управлять конфигурацией автотестов в CI/CD пайплайнах.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться