
Другие статьи этой серии:
Всем привет, сегодня вторая часть серии статей «Пишем социальную сеть на 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/
Добавить комментарий