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.

Справка:

Https://devcenter.heroku.com/articles/git