# Публикация conan-пакетов

### Аутентификация в репозитории

Для выполнения публикации в публичный репозиторий ОМП необходимо
аутентифицироваться в репозитории. Для выполнения этой задачи используется
команда [conan remote
login](https://docs.conan.io/2/reference/commands/remote.html#conan-remote-login).
Отличительной особенностью сборки conan является отключённый интерактивный
режим, поэтому пароль надо явно передать через аргументы команды.

Таким образом команда для аутентификации будет выглядеть следующим
образом:

```
sb2 -t AuroraOS-5.1.0.100-base-x86_64 conan-with-aurora-profile remote login -p "PASSWORD" omprussiapublic USER
```

Вместо `USER` необходимо указать имя пользователя на сервере conan, вместо
`PASSWORD` — пароль.

Данную команду необходимо выполнить во всех сборочных окружениях.

### Использование инструмента для входа

Для упрощения входа предоставляется инструмент [login-in-conan-server](../tools/login-in-conan-server). 
Данный инструмент необходимо запускать внутри сборочной среды.

Инструмент принимает на вход 2 позиционных аргумента:

- Имя пользователя.
- Пароль.

```
./tools/login-in-conan-server USER PASSWORD
```

### Публикация собранных пакетов

Инструмент для сборки пакетов имеет возможность для выполнения публикации
пакета в репозитории conan. Скрипт выполняет публикацию сборок для всех
выбранных архитектур. 

Шаг публикации выполняется только в том случае, если все локальные сборки
были выполнены.

Перед публикацией новой сборки скрипт удаляет её предыдущую версию
в репозитории. Следовательно публиковать пакет необходимо сразу со всеми
целями сборки.

Для включения данной функции необходимо передать аргумент `--publish`.

Публикация без сборки:

```
./tools/build-package --no-build --publish recepies/ffmpeg 7.0.1
```

Выполнить сборку и опубликовать.

```
./tools/build-package --publish recepies/ffmpeg 7.0.1
```
