Skip to content

Изучение сервисов хранения артефактов на примере Github Release

License

Notifications You must be signed in to change notification settings

uTakCouDeT/TiMP-lab-9

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 

Repository files navigation

Laboratory work IX

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

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

Tasks

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

Tutorial

$ export GITHUB_TOKEN=<полученный_токен>
$ export GITHUB_USERNAME=<имя_пользователя>
$ export PACKAGE_MANAGER=<пакетный менеджер>
$ export GPG_PACKAGE_NAME=<gpg2|gpg>
# for *-nix system
$ $PACKAGE_MANAGER install xclip
$ alias gsed=sed
$ alias pbcopy='xclip -selection clipboard'
$ alias pbpaste='xclip -selection clipboard -o'
$ cd ${GITHUB_USERNAME}/workspace
$ pushd .
$ source scripts/activate
$ go get github.com/aktau/github-release
$ git clone https://github.com/${GITHUB_USERNAME}/lab08 projects/lab09
$ cd projects/lab09
$ git remote remove origin
$ git remote add origin https://github.com/${GITHUB_USERNAME}/lab09
$ gsed -i 's/lab08/lab09/g' README.md
$ $PACKAGE_MANAGER install ${GPG_PACKAGE_NAME}
$ gpg --list-secret-keys --keyid-format LONG
$ gpg --full-generate-key
$ gpg --list-secret-keys --keyid-format LONG
$ gpg -K ${GITHUB_USERNAME}
$ GPG_KEY_ID=$(gpg --list-secret-keys --keyid-format LONG | grep ssb | tail -1 | awk '{print $2}' | awk -F'/' '{print $2}')
$ GPG_SEC_KEY_ID=$(gpg --list-secret-keys --keyid-format LONG | grep sec | tail -1 | awk '{print $2}' | awk -F'/' '{print $2}')
$ gpg --armor --export ${GPG_KEY_ID} | pbcopy
$ pbpaste
$ open https://github.com/settings/keys
$ git config user.signingkey ${GPG_SEC_KEY_ID}
$ git config gpg.program gpg
$ test -r ~/.bash_profile && echo 'export GPG_TTY=$(tty)' >> ~/.bash_profile
$ echo 'export GPG_TTY=$(tty)' >> ~/.profile
$ cmake -H. -B_build -DCPACK_GENERATOR="TGZ"
$ cmake --build _build --target package
$ travis login --auto
$ travis enable
$ git tag -s v0.1.0.0
$ git tag -v v0.1.0.0
$ git show v0.1.0.0
$ git push origin master --tags
$ github-release --version
$ github-release info -u ${GITHUB_USERNAME} -r lab09
$ 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 lab09
$ wget https://github.com/${GITHUB_USERNAME}/lab09/releases/download/v0.1.0.0/${PACKAGE_FILENAME}
$ tar -ztf ${PACKAGE_FILENAME}

Report

$ popd
$ export LAB_NUMBER=09
$ git clone https://github.com/tp-labs/lab${LAB_NUMBER} tasks/lab${LAB_NUMBER}
$ mkdir reports/lab${LAB_NUMBER}
$ cp tasks/lab${LAB_NUMBER}/README.md reports/lab${LAB_NUMBER}/REPORT.md
$ cd reports/lab${LAB_NUMBER}
$ edit REPORT.md
$ gistup -m "lab${LAB_NUMBER}"

Links

Copyright (c) 2015-2021 The ISC Authors

Выполнение работы

Установка утилиты gpg

sudo apt install gpg

Команда для перечисления длинной формы идентификаторов секретных ключей GPG, выводится как открытый, так и закрытый ключ. Закрытый ключ необходим для подписи коммитов или тегов:

gpg --list-secret-keys --keyid-format LONG

так как используемая верся gpg 2.2.27 - при помощи данной команды можно создать ключ-пару GPG:

gpg --full-generate-key

Далее необходимо выбрать тип и размер ключа. Нажатием клавиши Enter выбираем значения по умолчанию. Потом нужно выбрать время, в течение которого ключ должен быть действителен (нажатием Enter создаём бессрочный ключ) Вводим идентификационные данные пользователя и кодовую фразу

Выводим наши ключи

gpg --list-secret-keys --keyid-format LONG

Извлекаем в переменную GPG_KEY_ID и GPG_SEC_KEY_ID длинные формы идентификаторов ключей GPG (открытого и закрытого соответсвенно)

GPG_KEY_ID=$(gpg --list-secret-keys --keyid-format LONG | grep ssb | tail -1 | awk '{print $2}' | awk -F'/' '{print $2}')
GPG_SEC_KEY_ID=$(gpg --list-secret-keys --keyid-format LONG | grep sec | tail -1 | awk '{print $2}' | awk -F'/' '{print $2}')

Экспорт публичного ключа GPG в формате ASCII armor для добавления в GitHub аккаунт по переменной, и параллельно вывод в текстовом формате

gpg --armor --export ${GPG_KEY_ID} | cat

Настройка GPG для подписания коммитов Git

  • Сообщаем Git об использовании ключа, установка ключа для использования
  • Установка "шифровальной программой" gpg
git config user.signingkey ${GPG_SEC_KEY_ID}
git config gpg.program gpg
git tag -s v0.1.0.0
git tag -v v0.1.0.0
git show v0.1.0.0
git push origin main --tags

About

Изучение сервисов хранения артефактов на примере Github Release

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published