Пишем социальную сеть на Ruby on Rails. Часть 2

от автора

Другие статьи этой серии:

Всем привет, сегодня вторая часть серии статей «Пишем социальную сеть на Ruby on Rails» и сегодня я планирую добавить CI/CD. Планировал еще добавить пользователей и devise, но решил выделить их в отдельную статью, ибо очень много информации будет, а статья получится слишком большая (может даже ее придется разбивать на две части). Начиная с этой статьи, буду стараться делать их поменьше (слишком объемная получилась прошлая, возможно, кому-то было тяжеловато ее читать). Прежде, чем мы начнем, если вы не читали первую часть, то очень рекомендую перейти по ссылке выше и ознакомиться с ней.

Немного теории

CI/CD — это комбинация непрерывной интеграции (continuous integration) и непрерывного развертывания (continuous delivery) программного обеспечения в процессе разработки.

CI/CD объединяет разработку, тестирования и развёртывания приложения. CI/CD очень часто используется в работе, поэтому будет большим плюсом , если вы будете иметь хотя бы немного опыта с ним.

Регистрация и добавление проекта

На своем проекте я буду использовать CircleCI. Прежде всего нам нужно зарегистрироваться на их сайте или же зайти в существующий аккаунт. Я рекомендую заходить, используя свой аккаунт на GitHub.

После того, как зашли, нам нужно подключить свой проект. Находите в списке проектов вашу социальную сеть и нажимаем эту кнопку:

Далее нам предложат несколько вариантов подключения, выбираем третий вариант (можно и другие два, но я рекомендую третий для настройки вручную). На следующем окне выбираем Ruby (удивлены, не правда ли)

У вас появится поле с набросками настроек, но можете смело заменять все на наш вариант (Напоминаю, если вы назвали свой проект не g_connect, то везде заменяйте название на свое):

#.circleci/config.yml  version: 2.1  orbs:   ruby: circleci/ruby@0.1.2  jobs:   build:     docker:       - image: circleci/ruby:3.0.3-node-browsers         environment:           - BUNDLER_VERSION: 2.2.32           - RAILS_ENV: 'test'       - image: circleci/mysql:8.0         command: [--default-authentication-plugin=mysql_native_password]         environment:           MYSQL_ALLOW_EMPTY_PASSWORD: 'true'           MYSQL_ROOT_HOST: '%'           MYSQL_DATABASE: g_connect_test      working_directory: ~/g_connect      steps:       - checkout        - run: gem install bundler:2.2.32        - restore_cache:           name: Restore bundle cache           key: g_connect-{{ checksum "Gemfile.lock" }}        - run: bundle install --path vendor/bundle        - save_cache:           name: Store bundle cache           key: g_connect-{{ checksum "Gemfile.lock" }}           paths:             - vendor/bundle        - run: mv config/database.yml.ci config/database.yml         - run: yarn install        - run: bundle exec rake db:create       - run: bundle exec rake db:schema:load        - run:           name: run tests           command: |             mkdir /tmp/test-results             TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \               circleci tests split --split-by=timings)"             sudo gem install bundler             sudo gem install rspec             sudo gem install rspec-core             bundle exec rspec \               --format progress \               --format RspecJunitFormatter \               --out /tmp/test-results/rspec.xml \               --format progress \               $TEST_FILES        - store_test_results:           path: /tmp/test-results       - store_artifacts:           path: /tmp/test-results           destination: test-results 

Настройки еще не закончены, но сохраняйте и переходите на свой GitHub. Нам нужно добавить еще один файл, чтобы все заработало. В нашей папке config создаем файл database.yml.ci (особо внимательные должны были заметить этот файл в нашем .circleci/config.yml) и пишем следующее (укажите своего пользователя БД и замените название БД, если выбрали другое название проекта):

#config/database.yml.ci  test:   adapter: mysql2   encoding: utf8mb4   pool: 5   username: 'root'   port: 3306   host: '127.0.0.1'   database: g_connect_test

После этого заливайте изменения на GitHub и можете проверять. Все должно работать изумительно.

И на этом на сегодня все. В следующий раз мы будем создавать пользователей и настраивать devise, поэтому следующая статья будет достаточно объемной.

Надеюсь, вам всем было интересно читать эту статью. Если есть какие-то замечания либо же предложения — смело пишите в комментариях. Желаю всем поменьше ошибок в коде и побольше интересных проектов!


ссылка на оригинал статьи https://habr.com/ru/post/652657/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *