Работал ли с CI

Ответ

Да, работал с 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, а всем, кто в списке тестеров, пуша приходит: "Го пробовать новую фичу". Они довольные, мне меньше работы. В общем, вещь полезная, хоть и требует времени на первоначальную настройку. Но оно того стоит, поверь.