Ответ
Да, работал с CI/CD системами, такими как GitHub Actions, Bitrise и Jenkins. Настраивал автоматические сборки, тестирование и деплой приложений.
Пример конфигурации GitHub Actions для Android:
name: Android CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Build with Gradle
run: ./gradlew assembleDebug
- name: Run tests
run: ./gradlew test
Также интегрировал Firebase App Distribution для автоматической раздачи билдов тестерам.
Ответ 18+ 🔞
А, ну это про автоматизацию всяких сборок и деплоев! Да, руки до этого доходили, приходилось ковыряться. Честно говоря, когда впервые с этим столкнулся, был удивление пиздец — думал, что всё вручную надо делать, как в каменном веке. А оказалось, можно настроить так, что ты код закоммитил, а дальше система сама всё сделает: соберёт, протестирует, и хоть в магазин выложит. Просто ёперный театр какой-то!
Вот, например, в GitHub Actions конфиг накидаешь — и всё, понеслась. Выглядит обычно как-то так, смотри:
name: Android CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Build with Gradle
run: ./gradlew assembleDebug
- name: Run tests
run: ./gradlew test
Суть в чём: пишешь этот файлик в репу, кладёшь в папочку .github/workflows. И после этого любой пуш в ветку триггерит этот пайплайн. Система поднимает виртуалку, ставит туда Java, твой код выкачивает и начинает гонять Gradle-таски. Если сборка или тесты падают — тебе сразу алерт прилетает. Красота же!
С Jenkins, конечно, история поинтереснее. Это такой монстр, который может всё, но чтобы его настроить, иногда волнение ебать — столько пунктов и галочек, что голова кругом. Зато свой сервер, полный контроль, можно какие угодно костыли прикрутить. Но поддерживать его — тот ещё геморрой, честно говоря.
А Bitrise — это уже больше для мобильщиков заточено. Штука удобная, облачная, интерфейс человеческий. Особенно для iOS норм, там с сертификатами и профилями всякая магия происходит, которую руками делать — терпения ноль ебать.
И да, самое приятное — это когда после успешной сборки билд сам летит тестерам. Я, например, в Firebase App Distribution интегрировал. Настроил один раз — и теперь после каждого успешного пайплайна свежая сборка сама заливается в Firebase, а всем, кто в списке тестеров, пуша приходит: "Го пробовать новую фичу". Они довольные, мне меньше работы. В общем, вещь полезная, хоть и требует времени на первоначальную настройку. Но оно того стоит, поверь.