Пропустите настройку и начните создавать свой следующий Android-проект

Настройка Android-проекта может быть утомительной задачей. Необходимо загрузить правильный набор инструментов, настроить конвейер непрерывной интеграции и непрерывного развертывания (CI / CD) и поделиться стандартами о том, как внести свой вклад в проект на GitHub. В этом сообщении блога я расскажу, как шаблон может помочь автоматизировать процесс настройки репозитория Android.

Шаблон GitHub

Шаблон GitHub - это репозиторий, содержащий файлы и каталоги, которые можно импортировать в новый репозиторий после создания. Это важно для организаций, которые хотят использовать одни и те же методы разработки в различных проектах. Например, шаблон для мобильных приложений может содержать предустановленные зависимости Fastlane и рабочие процессы GitHub Actions, чтобы начать сборку и развертывание с самой первой фиксации. Fastlane - это инструмент, который помогает автоматизировать задачи по созданию, тестированию и развертыванию мобильных приложений, тогда как GitHub Actions позволяет создавать рабочие процессы CI / CD в репозитории GitHub. Хотя инструменты, необходимые для репозитория, могут различаться в разных командах и организациях, очень важно, чтобы проекты создавались и управлялись с помощью некоторых стандартов, чтобы улучшить взаимодействие с разработчиками, увеличить цикл обратной связи и устранить любые крутые кривые обучения. Используя шаблон, команды могут объединиться, чтобы установить стандарт и позволить разработчикам начать создавать новые репозитории на основе этого шаблона.

Ссылка на Android-шаблон.

Создание репозитория из шаблона

Посетите шаблон и нажмите Использовать этот шаблон.

Настройте параметры владельца, имени репозитория, описания и видимости репозитория. Когда вся необходимая информация будет предоставлена, нажмите Создать репозиторий из шаблона.

Вуаля. Под вашей учетной записью будет создан новый репозиторий со следующими файлами и каталогами, которые были включены в шаблон. Теперь вы можете приступить к созданию своего проекта.

Fastlane

Fastlane - это инструмент для автоматизации любых утомительных задач по созданию, тестированию и развертыванию мобильных приложений. В этом шаблоне шаблон fastlane настроен для запуска определенных команд Gradle локально и в конвейере действий GitHub.

Вот следующие действия на скоростной полосе, указанные в шаблоне.

Компиляция Android

# Compile debug and test sources
$ fastlane android compile

Android lint

# Execute lint and creates a HTML report
$ fastlane android lint

Сборка Android

# Assemble debug source and test APKs
$ fastlane android assemble

Модульное тестирование Android

# Execute unit test
$ fastlane android unit_test

Тестирование инструментов Android

# Execute instrumentation test on Emulator
$ fastlane android instrumentation_test

Преимущество использования скоростной полосы позволяет командам настраивать полосы движения в соответствии с желаемыми потребностями проекта. Определив полосы, разработчики могут выполнять следующие операции локально или в конвейере действий GitHub.

Действия GitHub

Действия GitHub позволяют создавать настраиваемые рабочие процессы в репозитории GitHub. Эти настраиваемые рабочие процессы могут автоматизировать определенные задачи для построения непрерывной интеграции и конвейера непрерывного развертывания. В этом шаблоне конвейер CI настроен для проверки новых изменений на следующих этапах компиляции, выполнения анализа ворса, сборки APK и выполнения модульных и инструментальных тестов.

Разделение различных заданий на этапы позволяет разработчикам быстро получать обратную связь без использования большого количества ресурсов. Например, если изменения не позволяют скомпилировать приложение, конвейер предупредит разработчика и не сможет продолжить работу с остальной частью конвейера.

После открытия запроса на вытягивание разработчики могут выполнять проверку кода, в то время как GitHub Actions выполняет следующие проверки, определенные в рабочем процессе конвейера PR, настраиваемом рабочем процессе в шаблоне, который запускается только для запросов на вытягивание.

Рабочие процессы определяются как файлы yml и помещаются в каталог .github/workflows/. В рабочем процессе необходимо указать, когда запускать рабочий процесс, будь то запросы на вытягивание, ветки или запланированный экземпляр, вместе с операциями, которые он должен выполнять. В рабочем процессе конвейера PR следующий конвейер выполняется только для запросов на вытягивание в главную ветвь.

Пример работы по компиляции можно найти ниже.

name: PR Pipeline Workflow 
# Execute PR Pipeline Workflow on pull requests to master
on:  
  pull_request:    
    branches:      
      - master  
jobs:  
  ################################
  # Compile Job:  
  # Install dependencies and compile debug and test source
  ############################ 
  compile:    
    runs-on: ubuntu-latest    
    steps:      
      - name: Checkout Repo        
        uses: actions/checkout@v2  
     
      - name: Set up Ruby 2.6        
        uses: actions/setup-ruby@v1        
        with:          
          ruby-version: 2.6.x    
   
      - name: Install Dependencies        
        run: gem install bundler && bundle install
       
      - name: Run Fastlane Compile Lane        
        run: fastlane compile
  ...

Шаблон выпуска

С этим шаблоном у нас есть следующая основа для действий Fastlane и GitHub. Создание программных приложений требует коллективных усилий. Чтобы работать эффективно, команды должны следовать определенному стандарту при создании задач и pull-запросов. С конкретным форматом было бы легче поделиться проблемой, а также получить правильный набор информации для эффективного решения проблемы. Шаблон репозитория также содержит шаблоны для создания задач и запросов на вытягивание, как показано ниже.

Проблемы

Шаблоны проблем можно найти в каталоге .github/ISSUE_TEMPLATE, который содержит конкретный дизайн для следующих типов проблем.

Например, чтобы создать новый отчет об ошибке, репортеру будет показан следующий шаблон для заполнения необходимой информацией.

Запросы на вытягивание

Шаблон для запроса на вытягивание можно найти в каталоге .github. Когда создается новый запрос на перенос, разработчик использует следующий шаблон для совместного использования контекста объединяемых изменений.

Шаблон Android

Следующий шаблон содержит настройку Fastlane, GitHub Actions, а также шаблон запроса и запроса на вытягивание, готовый для быстрого запуска проектов Android. Не стесняйтесь создавать свой следующий Android-проект на основе этого шаблона или начните создавать свой собственный шаблон для своих личных проектов или организации.



Спасибо.