6-я неделя - настоящая вещь здесь, в Craft Academy, на этом этапе мы больше работали с Ruby on Rails, разрабатывая промежуточный проект под названием «Фотомаркет». где люди могут покупать фотографии в Интернете. Опять же, мы работали как группа, но я могу сказать, что мы лучше, чем раньше, с точки зрения сотрудничества друг с другом. Я просто помню нашу Неделю 3 - Конкурс медленной еды, где мы действительно все испортили, и нам было очень трудно реализовать наши результаты, поскольку мы впервые работали в группе, не считая различных проблем, которые мы особенно столкнулись с такими приложениями git, как контроль версий и запрос на вытягивание.
Что ж, на этот раз лучше, хотя и не совсем идеально. Мы делимся на группы, которым нужно решать свои задачи.
Одна вещь, над которой я работал, - это развертывание нашего приложения на Heroku, которое я лично считаю полезным, чтобы увидеть, как наше приложение работает. Рауль ДИФФУО помог мне настроить наше приложение на Heroku, и это то, что я узнал.
Heroku позволяет нам развертывать, запускать и управлять приложениями, написанными на Ruby, Node.js, Java, Python, Clojure, Scala, Go и PHP. В нашем случае, очевидно, мы будем использовать Ruby. Github также является его частью, поскольку это мощная, мощная распределенная система контроля версий, которую многие разработчики используют для управления и версии исходного кода. Платформа Heroku использует git в качестве основного средства для развертывания приложений (есть и другие способы переноса исходного кода в Heroku, в том числе через API).
Когда вы создаете приложение на Heroku, он связывает новый пульт git, обычно называемый heroku
, с локальным репозиторием git для вашего приложения.
А теперь приступим:
Первое, что нам нужно сделать, это войти в нашу учетную запись Heroku:
$ heroku login Enter your Heroku credentials. Email: [email protected] Password (typing will be hidden): Logged in as [email protected]
Команда heroku create
создает новое приложение на Heroku вместе с удаленным git-файлом, который необходимо использовать для получения исходного кода вашего приложения. Здесь вы можете увидеть URL-адрес вашего приложения и репозиторий heroku git.
$ heroku create Creating app... done, ⬢ frozen-ridge-88343 https://frozen-ridge-88343.herokuapp.com/ | https://git.heroku.com/frozen-ridge-88343.git
Чтобы проверить, есть ли пульт в вашей конфигурации git, вы можете ввести git remote -v
обязательно увидеть heroku
$ git remote -v heroku https://git.heroku.com/frozen-ridge-88343.git (push) heroku https://git.heroku.com/frozen-ridge-88343.git (fetch) origin https://github.com/jocontreras/rails_messaging_feb.git (push) origin https://github.com/jocontreras/rails_messaging_feb.git (fetch) upstream https://github.com/CraftAcademy/rails_messaging_feb.git (fetch) upstream https://github.com/CraftAcademy/rails_messaging_feb.git (push)
Пришло время развернуть наш код. Ваше приложение Heroku начинается с пустого репозитория, у него нет веток и кода. Таким образом, при первом развертывании вам нужно будет указать удаленную ветку для отправки. Вы можете сделать свой первый толчок так:
$ git push heroku master Initializing repository, done. updating 'refs/heads/master' ...
Однако в нашем случае мы всегда отправляем запрос на перенос в ветку разработки, поэтому рекомендуется использовать следующую команду. Это отправит ваш код на heroku
пульт, созданный ранее. Используйте это всякий раз, когда вы хотите развернуть последний код, зафиксированный в Git, на Heroku.
$ git push heroku develop:master Counting objects: 208, done. Delta compression using up to 8 threads. Compressing objects: 100% (173/173), done. Writing objects: 100% (208/208), 52.96 KiB | 0 bytes/s, done. Total 208 (delta 51), reused 144 (delta 22) remote: Compressing source files... done. remote: Building source: remote: remote: -----> Ruby app detected remote: -----> Compiling Ruby/Rails remote: -----> Using Ruby version: ruby-2.2.6 remote: -----> Installing dependencies using bundler 1.13.7 .... .... ....
Также важно выполнить команду db: migrate для обновления базы данных:
$ heroku run rails db:migrate Running rails db:migrate on ⬢ frozen-ridge-88343... up, run.3450 (Free) (13.7ms) CREATE TABLE "schema_migrations" ("version" character varying PRIMARY KEY) (8.0ms) CREATE TABLE "ar_internal_metadata" ("key" character varying PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) (0.9ms) SELECT pg_try_advisory_lock(8236723506275720400); ActiveRecord::SchemaMigration Load (1.1ms) SELECT "schema_migrations".* FROM "schema_migrations" Migrating to DeviseCreateUsers (20160322070219) (1.0ms) BEGIN == 20160322070219 DeviseCreateUsers: migrating ================================ -- create_table(:users, {}) (7.0ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying DEFAULT '' NOT NULL, "encrypted_password" character varying DEFAULT '' NOT NULL, "reset_password_token" character varying, "reset_password_sent_at" timestamp, "remember_created_at" timestamp, "sign_in_count" integer DEFAULT 0 NOT NULL, "current_sign_in_at" timestamp, "last_sign_in_at" timestamp, "current_sign_in_ip" inet, "last_sign_in_ip" inet, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) .... .... ....
Если вы думаете об изменении URL-адреса вашего развернутого приложения Heroku, вы можете использовать команду переименования, как показано ниже:
$ heroku rename rails-messaging-feb Renaming frozen-ridge-88343 to rails-messaging-feb... done https://rails-messaging-feb.herokuapp.com/ | https://git.heroku.com/rails-messaging-feb.git Git remote heroku updated ▸ Don't forget to update git remotes for all other local checkouts of the app.
Установка трэвиса
$ gem install travis Successfully installed travis-1.8.8 Parsing documentation for travis-1.8.8 Installing ri documentation for travis-1.8.8 Done installing documentation for travis after 2 seconds 1 gem installed
Два способа интегрировать Travis в Heroku.
Есть два способа интегрировать Travis CI в heroku, через терминал или на панель управления heroku.
Установка через терминал:
Вы можете просто набрать команду gem install travis$ travis encrypt $(heroku auth:token) --add deploy.api_key.
$ gem install travis$ travis encrypt $(heroku auth:token) --add deploy.api_key Detected repository as jocontreras/rails_messaging_feb, is this correct? |yes| no Repository slug (owner/name): |jocontreras/rails_messaging_feb| CraftAcademy/rails_messaging_feb ✔ ~/projects/rails_messaging_feb [develop L|✚ 1]
Это сгенерирует ключ API в вашем .travis.yml
После этого нам нужно обновить наш репозиторий:
$ git status On branch develop Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: .travis.yml no changes added to commit (use "git add" and/or "git commit -a")
Поскольку в .travis.yml
есть изменения, мы должны зафиксировать эти изменения. Сначала мы создали новую ветку .setup-deployment-with-travis
$ git checkout -b setup-deployment-with-travis M .travis.yml Switched to a new branch 'setup-deployment-with-travis' ✔ ~/projects/rails_messaging_feb [setup-deployment-with-travis L|✚ 1]
После этого мы можем зафиксировать.
$ git commit -am 'setup auto deployment with travis' [setup-deployment-with-travis 725a1ba] setup auto deployment with travis 1 file changed, 8 insertions(+) ✔ ~/projects/rails_messaging_feb [setup-deployment-with-travis L|✔]
И нажимаем на нашу героку.
$ git push origin Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 1.06 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: Resolving deltas: 100% (1/1), completed with 1 local objects. To https://github.com/jocontreras/rails_messaging_feb.git * [new branch] setup-deployment-with-travis -> setup-deployment-with-travis
Еще один способ развернуть Travis с Heroku - использовать нашу собственную панель управления на странице Heroku. Просто войдите в свою учетную запись Heroku.
Щелкните вкладку «Развертывание», и вы увидите следующее.
Перейдите на вкладку GitHub и нажмите кнопку Подключиться к github.
После этого он запросит у вас разрешение на доступ к вашей учетной записи.
После авторизации вы щелкаете вкладку Github и видите, что подключены. Также предоставляются другие сведения, например, к какому репозиторию вы подключены и в какой ветке происходит автоматическое развертывание.
Чтобы включить опцию непрерывной интеграции (через Travis CI), просто отметьте Wait for CI to pass before deploy.
Справка: