Собираем И Публикуем Snap Пакеты В Gitlab-Ci
Сборка
build-pkg:
stage: package
image: snapcore/snapcraft
script:
- snapcraft --version
- snapcraft
- ls -la
artifacts:
expire_in: 1 week
paths:
- *.snap
Публикация
Для начала — нужно добыть в файл параметры доступа. (Это можно сделать даже внутри docker контейнера.)
snapcraft login
snapcraft export-login snapcraft.login
base64 snapcraft.login
После чего - нужно добавить в настройках CI
- Settings — CI/CD
и в категории Environment variables
добавляем новый ключ с именем SNAPCRAFT_LOGIN_FILE
с той бородой, которую выдаст команда base64
.
Ну и самое (не)интересное
deploy-snapcraft:
stage: deploy
image: snapcore/snapcraft
when: manual
dependencies:
- build-pkg
script:
- mkdir .snapcraft
- echo $SNAPCRAFT_LOGIN_FILE | base64 --decode --ignore-garbage > .snapcraft/snapcraft.cfg
- snapcraft whoami
- snapcraft push *.snap --release stable
environment:
name: production
url: https://snapcraft.io/$CI_PROJECT_NAME
only:
- master