Данная лабораторная работа посвещена изучению процесса создания пакета на примере Github Release
$ open https://help.github.com/articles/creating-releases/
- 1. Создать публичный репозиторий с названием lab09 на сервисе GitHub
- 2. Ознакомиться со ссылками учебного материала
- 3. Получить токен для доступа к репозиториям сервиса GitHub
- 4. Сгенерировать GPG ключ и добавить его к аккаунту сервиса GitHub
- 5. Выполнить инструкцию учебного материала
- 6. Составить отчет и отправить ссылку личным сообщением в Slack
Генерируем GPG ключ и добавляем его к аккаунту GitHub
$ gpg --full-generate-key
$ # выполняем все инструкции утилиты
$ gpg --list-secret-keys --keyid-format LONG # получение списка всех секретных ключей
/home/${GITHUB_USERNAME}/.gnupg/secring.gpg
------------------------------------
sec ${TYPE_ENCODING}/${SECRET_KEY_ID} xxxx-xx-xx [expires: xxxx-xx-xx]
uid ${USERNAME} (${NOTE}) <${EMAIL>
ssb ${TYPE_ENCODING}/${SSB_KEY_ID} xxxx-xx-xx
$ gpg --armor --export ${SECRET_KEY_ID} # выводим ID GPG ключа в защищенном ASCII формате
-----BEGIN PGP PUBLIC KEY BLOCK-----
${GPG_KEY_ID}
-----END PGP PUBLIC KEY BLOCK-----
$ # далее копируем и добавляем выведенный ключ к аккаунту на **GitHub**
$ git config --global user.signingkey ${SECRET_KEY_ID} # устанавливаем ключ для подписи
Устанавливаем переменные окружения
$ export GITHUB_TOKEN=<полученный_токен>
$ export GITHUB_USERNAME=<имя_пользователя>
$ alias gsed=sed # for *-nix system
Устанавливаем командную утилиту для создания и редактирования релизов на Github
$ cd ${GITHUB_USERNAME}/workspace
$ pushd .
$ source scripts/activate
$ go get github.com/aktau/github-release
Скачиваем репозиторий Labs
и создаем новую ветку lab09
$ git clone https://github.com/${GITHUB_USERNAME}/Labs projects/lab09
$ cd projects/lab09
$ git checkout lab08
$ git checkout -b lab09
Изменяем README.md
$ gsed -i 's/lab08/lab09/g' README.md
Собираем проект в виде .tar.gz
архива
$ cmake -H. -B_build -DCPACK_GENERATOR="TGZ"
$ cmake --build _build --target package
Инициализируем сборку через сервис TravisCI
$ travis login --auto
$ travis enable
Устанавливаем метку с помощью ранее созданного GPG ключа
$ git tag -s v0.1.0.0 # создаем метку
$ git tag -v v0.1.0.0 # верифицируем метку
$ git push origin master --tags # отправляем метку в репозиторий
Создаем релиз проекта
$ github-release --version # получаем версию утилиты: github-release v0.7.2
$ github-release info -u ${GITHUB_USERNAME} -r Labs
$ github-release release \
--user ${GITHUB_USERNAME} \
--repo lab09 \
--tag v0.1.0.0 \
--name "libprint" \
--description "my first release"
Загружаем архив проекта
$ export PACKAGE_OS=`uname -s` PACKAGE_ARCH=`uname -m`
$ export PACKAGE_FILENAME=print-${PACKAGE_OS}-${PACKAGE_ARCH}.tar.gz
$ github-release upload \
--user ${GITHUB_USERNAME} \
--repo lab09 \
--tag v0.1.0.0 \
--name "${PACKAGE_FILENAME}" \
--file _build/*.tar.gz
Просматриваем информацию о текущих метках и релизах. А после скачиваем архив проекта нашей библиотеки
$ github-release info -u ${GITHUB_USERNAME} -r Labs # просмотр всех текущих меток и релизах
$ wget https://github.com/${GITHUB_USERNAME}/lab09/releases/download/v0.1.0.0/${PACKAGE_FILENAME}
$ tar -ztf ${PACKAGE_FILENAME}
Copyright (c) 2017 Братья Вершинины