aurora_ci
Описание
Набор шаблонов для сборки и публикации приложений для Аврора ОС
CI шаблоны для Аврора ОС
В этом репозитории представлены шаблоны для автоматизации сборки и доставки приложений для Аврора ОС.
Если нашли ошибку в работе пайплайна прошу просмотреть и по необходимости добавить в раздел с задачами. Свои предложения и доработки присылайте в мерж реквест.
Сделано на основе инструкции от ОМП.
Обсудить пайплайны, их использование и другие вопросы по разработке можно в чате Aurora Developers.
Инструкция по настройке агентов и конвейера в статье на habr.
Использование
В первую очередь необходимо настроить раннера. В текущей версии шаблонов поддержка только apptool в docker.
Установка тега
set_tag Применимо для: psdk, apptool
Устанавливает тег в файле проекта. Позволяет ставить версию приложения по тегу (или названию ветки).
- name: Установка тега
uses: https://gitverse.ru/aurora_developers/aurora_ci/set_tag@master
Сборка приложения
/apptool/build
Применимо для: apptool
Выполняет сборку приложения. На вход ожидает целевую архитектуру. Результат работы сохраняется в примонтированном каталоге
- name: Сборка для aarch64
uses: https://gitverse.ru/aurora_developers/aurora_ci/apptool/build@master
with:
arch: 'aarch64'
- name: Сборка для armv7hl
uses: https://gitverse.ru/aurora_developers/aurora_ci/apptool/build@master
with:
arch: 'armv7hl'
Как вариант, можно запускать с помощью matrix. Например, так сделал сборку одного из своих проектов (с дозагрузкой библиотеки):
...
jobs:
build:
name: Подготовка и сборка проекта
runs-on: ubuntu-latest
strategy:
matrix:
arch: [aarch64, armv7hl]
container:
image: hub.omp.ru/public/sdk-build-tools
volumes:
- releases:/releases
steps:
- name: Клонирование репозитория
run: git clone https://${{ gitverse.token }}@gitverse.ru/${{ gitverse.repository }}.git .
- name: Установка тега
uses: https://gitverse.ru/aurora_developers/aurora_ci/set_tag@master
- name: Подготовка библиотек
run: |
curl -O https://gitverse.ru/api/packages/aurora_developers/generic/aurora_libusb/1.0.28/aurora_libusb.tar
tar xvf aurora_libusb.tar
mv libs_${{ matrix.arch }} libs
- name: Сборка для ${{ matrix.arch }}
uses: https://gitverse.ru/aurora_developers/aurora_ci/apptool/build@master
with:
arch: ${{ matrix.arch }}
...
Подпись пакетов
/apptool/sign
Применимо для: apptool
Выполняет подписываение пакетов. Если не передан APP_KEY или APP_CERT, то подписывает стандартным сертификатом разработчика.
- name: Подпись приложений сертификатом разработчика
uses: https://gitverse.ru/aurora_developers/aurora_ci/apptool/sign@master
- name: Подпись приложений сертификатом организации/персональным
uses: https://gitverse.ru/aurora_developers/aurora_ci/apptool/sign@master
with:
APP_KEY: ${{ secrets.APP_KEY }}
APP_CERT: ${{ secrets.APP_CERT }}
APP_PASS: ${{ secrets.APP_PASS }}
Шаблон
Для использования в своем проекте можете использовать следующий шаблон:
name: Сборка Qt проекта для Аврора ОС
on:
push:
tags:
- '*'
jobs:
build:
name: Подготовка и сборка проекта
runs-on: ubuntu-latest
container:
image: hub.omp.ru/public/sdk-build-tools
volumes:
- releases:/releases
steps:
- name: Клонирование репозитория
run: git clone https://${{ gitverse.token }}@gitverse.ru/${{ gitverse.repository }}.git .
- name: Установка тега
uses: https://gitverse.ru/aurora_developers/aurora_ci/set_tag@master
- name: Сборка для aarch64
uses: https://gitverse.ru/aurora_developers/aurora_ci/apptool/build@master
with:
arch: 'aarch64'
- name: Сборка для armv7hl
uses: https://gitverse.ru/aurora_developers/aurora_ci/apptool/build@master
with:
arch: 'armv7hl'
- name: Подпись приложений
uses: https://gitverse.ru/aurora_developers/aurora_ci/apptool/sign@master
with:
APP_KEY: ${{ secrets.APP_KEY }}
APP_CERT: ${{ secrets.APP_CERT }}
APP_PASS: ${{ secrets.APP_PASS }}
- name: Публикация
uses: https://gitverse.ru/aurora_developers/aurora_ci/publish/gitverse@master
with:
dst: /releases
name: ${{ gitverse.event.repository.name}}
token: ${{ secrets.TOKEN }}
version: ${{ gitverse.ref_name }}