aurora_ci

0

Описание

Набор шаблонов для сборки и публикации приложений для Аврора ОС

README.md

CI шаблоны для Аврора ОС

В этом репозитории представлены шаблоны для автоматизации сборки и доставки приложений для Аврора ОС.

Если нашли ошибку в работе пайплайна прошу просмотреть и по необходимости добавить в раздел с задачами. Свои предложения и доработки присылайте в мерж реквест.

Сделано на основе инструкции от ОМП.

Обсудить пайплайны, их использование и другие вопросы по разработке можно в чате Aurora Developers.

Инструкция по настройке агентов и конвейера в статье на habr.

Использование

В первую очередь необходимо настроить раннера. В текущей версии шаблонов поддержка только apptool в docker.

Установка тега

set_tag Применимо для: psdk, apptool

Устанавливает тег в файле

rpm/*.spec
проекта. Позволяет ставить версию приложения по тегу (или названию ветки).

- name: Установка тега uses: https://gitverse.ru/aurora_developers/aurora_ci/set_tag@master

Сборка приложения

/apptool/build

Применимо для: apptool

Выполняет сборку приложения. На вход ожидает целевую архитектуру. Результат работы сохраняется в примонтированном каталоге

/releases

- 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 }}