/lab05

Primary LanguageCMakeApache License 2.0Apache-2.0

Build Status

Laboratory work V

Данная лабораторная работа посвещена изучению систем непрерывной интеграции на примере сервиса Travis CI

$ open https://travis-ci.org

Tasks

  • 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

Tutorial

$ export GITHUB_USERNAME=<имя_пользователя>  # Устанавливаем значение переменной окружения GITHUB_USERNAME
$ export GITHUB_TOKEN=<полученный_токен>   # Устанавливаем значение переменной окружения GITHUB_TOKEN

Инициализация директории lab04

$ git clone https://github.com/${GITHUB_USERNAME}/lab04 lab05
https://github.com/${GITHUB_USERNAME}/lab04 lab05
Клонирование в «lab05»…
remote: Counting objects: 29, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 29 (delta 7), reused 21 (delta 3), pack-reused 0
Распаковка объектов: 100% (29/29), готово.
Проверка соединения… готово.
$ cd lab05
$ git remote remove origin
$ git remote add origin https://github.com/${GITHUB_USERNAME}/lab05

Работа с файлом .travis.yml

$ 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 с помощью github token

$ travis login --github-token ${GITHUB_TOKEN}
Successfully logged in as desta-study!
$ travis lint
Warnings for .travis.yml:
[x] value for addons section is empty, dropping
[x] in addons section: unexpected key apt, dropping
$ ex -sc '1i|[![Build Status](https://travis-ci.org/desta-study/lab05.svg?branch=master)](https://travis-ci.org/desta-study/lab05)' -cx README.md

Отправляем последние изменения на GitHub сервер

$ git add .travis.yml   # Отследить изменения .travis.yml
$ git add README.md     # Отследить изменения README.md
$ git commit -m"added CI"    # Сохранить изменения
$ git push origin master     # Загрузка файлов на сервер
$ travis lint     # display warnings for a .travis.yml
Warnings for .travis.yml:
[x] value for addons section is empty, dropping
[x] in addons section: unexpected key apt, dropping
$ travis accounts   # displays accounts and their subscription status
desta-study (desta-study): subscribed, 6 repositories
$ travis sync    # triggers a new sync with GitHub
synchronizing: .. done
$ travis repos     # list of my repos
desta-study/lab03 (active: no, admin: yes, push: yes, pull: yes)
Description: ???

desta-study/lab03-1 (active: no, admin: yes, push: yes, pull: yes)
Description: ???

desta-study/lab04 (active: no, admin: yes, push: yes, pull: yes)
Description: laba04

desta-study/lab04-1 (active: no, admin: yes, push: yes, pull: yes)
Description: Изучение систем автоматизации сборки проекта на примере CMake

desta-study/lab05 (active: yes, admin: yes, push: yes, pull: yes)
Description: ???

desta-study/stack2 (active: no, admin: yes, push: yes, pull: yes)
Description: Homework-2
$ travis enable      # enables a project
Detected repository as desta-study/lab05, is this correct? |yes| yes
desta-study/lab05: enabled :)
$ travis whatsup    # lists most recent builds
desta-study/lab05 passed: #1
$ travis branches    # most recent build for each branch
master: #1 passed added CI
$ travis history    # project history
travi#1 passed: master added CI
$ travis show   # displays a build 
Job #1.1: added CI
State: passed
Type: push
Branch: master
Compare URL: https://github.com/desta-study/lab05/compare/70611972..^...d64728e06ec8
Duration: 36 sec
Started: 2017-10-04 13:24:40
Finished: 2017-10-04 13:25:16
Allow Failure: false
Config: os: linux

Report

$ 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}"

Links

Copyright (c) 2017 Братья Вершинины