Skip to content

Instantly share code, notes, and snippets.

@Neisoweli
Last active June 5, 2020 08:41
Show Gist options
  • Save Neisoweli/1e5479a5f8356238675f97aac89b84c3 to your computer and use it in GitHub Desktop.
Save Neisoweli/1e5479a5f8356238675f97aac89b84c3 to your computer and use it in GitHub Desktop.
Lab09.Report

Laboratory work IX Build Status

Данная лабораторная работа посвещена изучению процесса создания пакета на примере Github Release

$ open https://help.github.com/articles/creating-releases/

Tasks

  • 1. Создать публичный репозиторий с названием lab09 на сервисе GitHub
  • 2. Ознакомиться со ссылками учебного материала
  • 3. Получить токен для доступа к репозиториям сервиса GitHub
  • 4. Сгенерировать GPG ключ и добавить его к аккаунту сервиса GitHub
  • 5. Выполнить инструкцию учебного материала
  • 6. Составить отчет и отправить ссылку личным сообщением в Slack

Tutorial

Генерируем 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}

Links

Copyright (c) 2017 Братья Вершинины
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment