Ответ
Да, я активно использовал Bash-скрипты в Jenkins для автоматизации различных этапов CI/CD пайплайнов.
Типичные сценарии применения:
- Настройка окружения: установка зависимостей, конфигурация переменных.
- Запуск тестов: выполнение unit-, integration- или E2E-тестов.
- Обработка результатов: парсинг отчётов, генерация метрик, отправка уведомлений.
- Работа с артефактами: сборка, архивация, загрузка в репозиторий.
Пример шага в Declarative Pipeline Jenkinsfile:
pipeline {
agent any
stages {
stage('Run Tests') {
steps {
sh '''
#!/bin/bash
echo "Setting up the test environment..."
export TEST_ENV="staging"
pip install -r requirements.txt
echo "Running test suite..."
python -m pytest tests/
--junitxml=test-results.xml
--cov=app
--cov-report=xml:coverage.xml
echo "Tests completed."
'''
}
}
}
}
На практике Bash-скрипты часто комбинируются с Groovy (для логики пайплайна) и инструментами вроде jq для обработки JSON или aws cli для развёртывания.
Ответ 18+ 🔞
А, ну ты про то, когда в Дженкинсе эти скрипты на баше пишешь, чтобы всё само, как по маслу, каталось? Да, блядь, было дело, овердохуища с этим возился.
Ну, вот куда обычно их впендюривал:
- Окружение поднять: Это святое. Там зависимости поставить, переменные накрутить — чтоб всё, как у людей, а не вручную, как последний распиздяй.
- Тесты гонять: Ну, unit-тесты там, integration... Главное — чтоб отчёты эти, ебушки-воробушки, в нормальном виде выходили, а не просто в лог пиздюлей.
- С этими отчётами потом возиться: Распарсить, метрики вытащить, алёрты кому надо отправить — если всё ебнулось, конечно.
- С артефактами шаманить: Собрать, упаковать, закинуть куда положено — чтоб потом не искать, блядь, по всем папкам.
Вот, смотри, как в пайплайне это обычно выглядит, кусок простой:
pipeline {
agent any
stages {
stage('Run Tests') {
steps {
sh '''
#!/bin/bash
echo "Setting up the test environment..."
export TEST_ENV="staging"
pip install -r requirements.txt
echo "Running test suite..."
python -m pytest tests/
--junitxml=test-results.xml
--cov=app
--cov-report=xml:coverage.xml
echo "Tests completed."
'''
}
}
}
}
А по жизни-то, конечно, это всё в кучу сваливается: сам пайплайн на Groovy, внутри него баш, а ещё jq для JSON'ов приплетаешь или aws cli, если в облако деплоить. В общем, каша, но зато работает, блядь, как швейцарские часы, если, конечно, не накосячил где.