- PVSM.RU - https://www.pvsm.ru -
Конечно, есть простой вариант автоматического деплоймента одной строчкой конфига groc'a на github pages, но мы же не ищем лёгких путей.
После 5-х часов мучений на винде и дюжины неудачных сборок, я всё-таки пересел на linux. Так как ruby поставился, gem тоже и даже gem install travis сработал. Но вот travis encrypt я так и не смог заставить работать. Ничего не понятно? Читай дальше.
Пробема: все увидят твой private ssh key.
Для решения этой проблемки и нужен travis encrypt. Скормив ему свой ключик и получив rsa из aes'a, можно не бояться, что кто-то чужой, злой и нуждающийся в твоём бесполезном репозитории злоумышленник сможет так легко сломать твой проект.
Итак, объясняю, как всё делать в консоли linux:
sudo apt-get install ruby1.9.3
gem install travis
travis encrypt-file ~/.ssh/id_rsa --add
опция --add сразу добавит зашифрованный файл/переменную в .travis.yml
travis encrypt MY_MAIL="a.a.pakhomoff@gmail.com" --add
теперь нужно только в требуемом месте файла .travis.yml добавить $MY_MAIL вместо «a.a.pakhomoff@gmail.com»
language: node_js
node_js:
- '0.12'
notifications:
email: false
before_install:
- openssl aes-256-cbc -K $encrypted_ca96f6bc6cbe_key -iv $encrypted_ca96f6bc6cbe_iv
-in .travis/id_rsa.enc -out ~/.ssh/id_rsa -d # то, что добавилось после шифрования
# файла, я только указал явно, откуда брать зашифрованный и куда его расшифровать
# удаляем прежнюю документацию, чтобы заменить на свежую сгенеренную
- git rm -rf doc/*
before_script:
# тоже зашифрованная переменная с моим e-mail адресом
- git config --global user.email $MY_MAIL
- git config --global user.name "Travis-CI"
after_success:
- chmod 600 ~/.ssh/id_rsa # именно такие права должны быть у файла с частным ключом
# кстати, при создании ssh-key необходимо оставить пустым passphrase,
# иначе по shh-add будет просить ввод этой фразы
# активируем агента и добавляем ssh-key
- eval "$(ssh-agent)"
- ssh-add
# ну дальше, в общем, всё понятно: добавляем то,
# что есть, прячем изменения, переключаемся на ветку,
# в которую надо сохранить доки и мёржимся со спрятанными
# изменениями по стратегии взять то, что там
- git remote add deploy git@github.com:Faverick/trendets.git
- git add doc/*
- git stash
- git checkout develop
- git merge --squash --strategy-option=theirs stash
- git stash clear
- git commit -m "Documentation updated"
- git push deploy develop
env:
global: # а это мой e-mail
secure: h4uLA8Fu/ncekMDeYYS7kI8Nh0FIv+XaQ2DAW5AuRsA3dqcgxvlnOA0vnkYmnvGmZ8amcRYqNq7MX/apzPwtv7GkXf7WcGgDnCfoxLcZiva/e4P51ZU62B4iYbIQ1OMCKkQvenS+Ajtk7yxKYqiEEhRyjoCpLJMzzNd0uQR5uH0=
P.S. очень много информации взял из документации Travis CI [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/pesochnitsa/88342
Ссылки в тексте:
[1] (в первом ответе хорошо объясняется): http://stackoverflow.com/questions/9560892/permissions-error-github-ssh-key-not-recognized
[2] документации Travis CI: http://docs.travis-ci.com/
Нажмите здесь для печати.