Данная лабораторная работа посвещена изучению систем непрерывной интеграции на примере сервиса Travis CI
$ open https://travis-ci.org
- 1. Авторизоваться на сервисе Travis CI с использованием GitHub аккаунта
- 2. Создать публичный репозиторий с названием lab05 на сервисе GitHub
- 3. Ознакомиться со ссылками учебного материала
- 4. Включить интеграцию сервиса Travis CI с созданным репозиторием
- 5. Получить токен для Travis CLI с правами repo и user
- 6. Получить фрагмент вставки значка сервиса Travis CI в формате Markdown
- 7. Установить Travis CLI
- 8. Выполнить инструкцию учебного материала
- 9. Составить отчет и отправить ссылку личным сообщением в Slack
$ export GITHUB_USERNAME=hackallcode
$ export GITHUB_TOKEN=tokentoken1234567890
$ git clone https://github.com/${GITHUB_USERNAME}/lab04 lab05
$ cd lab05
$ git remote remove origin
$ git remote add origin https://github.com/${GITHUB_USERNAME}/lab05
$ cat > .travis.yml <<EOF
language: cpp
EOF
$ cat >> .travis.yml <<EOF
script:
- cmake -H. -B_build -DCMAKE_INSTALL_PREFIX=_install
- cmake --build _build
- cmake --build _build --target install
EOF
$ cat >> .travis.yml <<EOF
addons:
apt:
sources:
- george-edison55-precise-backports
packages:
- cmake
- cmake-data
EOF
$ travis login --github-token ${GITHUB_TOKEN}
$ travis lint
$ ex -sc '1i|большой_код_значка' -cx README.md
$ git add .travis.yml
$ git add README.md
$ git commit -m"added CI"
$ git push origin master
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis lint
Warnings for .travis.yml:
[x] value for addons section is empty, dropping
[x] in addons section: unexpected key apt, dropping
# Выводим привязанные аккаунты
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis accounts
hackallcode (Vladimir Severov): subscribed, 5 repositories
# Синхронизируем
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis sync
synchronizing: travis repos. done
# Выводим репозитории и их параметры
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis repos
freezenook/StudentsAssistant (active: no, admin: no, push: yes, pull: yes)
Description: ???
hackallcode/BMSTU-Projects-1st-Semester (active: no, admin: yes, push: yes, pull: yes)
Description: Репозиорий для программ из МГТУ им. Баумана
hackallcode/BMSTU-Projects-2nd-Semester (active: no, admin: yes, push: yes, pull: yes)
Description: BMSTU projects of 2nd semester
hackallcode/lab03 (active: no, admin: yes, push: yes, pull: yes)
Description: ???
hackallcode/lab04 (active: no, admin: yes, push: yes, pull: yes)
Description: ???
hackallcode/lab05 (active: yes, admin: yes, push: yes, pull: yes)
Description: ???
# Включаем travis
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis enable
hackallcode/lab05: enabled :)
# Выводим выполненые команд
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis whatsup
hackallcode/lab05 passed: #1
# Выводим сделанные шаги в ветке master
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis branches
master: #1 passed added CI
# Выводим историю изменений
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis history
#1 passed: master added CI
# Выводим полную информацию
vladimir@VLADIMIR-KALI:~/workspace/labs/projects/lab05$ travis show
Job #1.1: added CI
State: passed
Type: push
Branch: master
Compare URL: https://github.com/hackallcode/lab05/compare/54b528a22ed2^...82f9691f30c8
Duration: 37 sec
Started: 2017-10-06 23:32:16
Finished: 2017-10-06 23:32:53
Allow Failure: false
Config: os: linux
$ cd ~/workspace/labs/
$ export LAB_NUMBER=05
$ 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}"
Copyright (c) 2017 Братья Вершинины