Skip to content

Instantly share code, notes, and snippets.

@nothingholy
Last active June 4, 2019 21:39
Show Gist options
  • Save nothingholy/8abc034c770b36e86d7debc445ee0ae6 to your computer and use it in GitHub Desktop.
Save nothingholy/8abc034c770b36e86d7debc445ee0ae6 to your computer and use it in GitHub Desktop.
lab04

Laboratory work IV

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

$ open https://travis-ci.org

Tasks

  • 1. Авторизоваться на сервисе Travis CI с использованием GitHub аккаунта
  • 2. Создать публичный репозиторий с названием lab04 на сервисе GitHub
  • 3. Ознакомиться со ссылками учебного материала
  • 4. Включить интеграцию сервиса Travis CI с созданным репозиторием
  • 5. Получить токен для Travis CLI с правами repo и user
  • 6. Получить фрагмент вставки значка сервиса Travis CI в формате Markdown
  • 7. Выполнить инструкцию учебного материала
  • 8. Составить отчет и отправить ссылку личным сообщением в Slack

Tutorial

Создаем переменные

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

Заходим в свой workspace и активируем скрипты

$ cd ${GITHUB_USERNAME}/workspace
$ pushd .
$ source scripts/activate

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

$ \curl -sSL https://get.rvm.io | bash -s -- --ignore-dotfiles  # Получение и исполнение установочного bash-файла
$ echo "source $HOME/.rvm/scripts/rvm" >> scripts/activate
$ . scripts/activate
$ rvm autolibs disable # Отключение установки зависимостей
$ rvm install ruby-2.4.2 # Установление ruby версии 2.4.2
$ rvm use 2.4.2 --default # Установка установленной версии как основной
$ gem install travis # Установка travis (из пакетов для ruby)

Клонируем и перезаписываем репозиторий

$ git clone https://github.com/${GITHUB_USERNAME}/lab03 projects/lab04
$ cd projects/lab04
$ git remote remove origin
$ git remote add origin https://github.com/${GITHUB_USERNAME}/lab04

Создание файла и определение языка

$ cat > .travis.yml <<EOF
language: cpp
EOF

Дописывание в .travis.yml команд, выполняющихся при интеграции

$ cat >> .travis.yml <<EOF

script:
- cmake -H. -B_build -DCMAKE_INSTALL_PREFIX=_install
- cmake --build _build
- cmake --build _build --target install
EOF

Дописывание в .travis.yml информации об устанавливаемых пакетах

$ 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
$ travis lint
$ travis accounts # показывает аккаунты и статус
$ travis sync # начинает синхронизацию с гитхабом
$ travis repos # показывает списки репозиториев, доступных для пользователя
$ travis enable # добавляет репозиторий в тревис
$ travis whatsup # показывает последние сборки
$ travis branches # показывает последнюю сборку для каждой ветки
$ travis history # показывает историю сборок
$ travis show # показывает сборку

Report

$ popd
$ export LAB_NUMBER=04
$ 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}"

Homework

Вы продолжаете проходить стажировку в "Formatter Inc." (см подробности).

В прошлый раз ваше задание заключалось в настройке автоматизированной системы CMake.

Сейчас вам требуется настроить систему непрерывной интеграции для библиотек и приложений, с которыми вы работали в прошлый раз. Настройте сборочные процедуры на различных платформах:

  • используйте TravisCI для сборки на операционной системе Linux с использованием компиляторов gcc и clang;
  • используйте AppVeyor для сборки на операционной системе Windows.

Links

Copyright (c) 2015-2019 The ISC Authors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment