From 508e70f293ae83bdcede7cb44219abd8c067939b Mon Sep 17 00:00:00 2001 From: madmatvey Date: Fri, 17 May 2024 13:22:00 +0400 Subject: [PATCH] actions --- .github/workflows/main.yml | 81 ++++++++++++++++++++++++++++++++++++++ Gemfile.lock | 7 +++- 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..02653b9 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,81 @@ +name: CI +'on': + - push +jobs: + code_checks: + runs-on: ubuntu-20.04 + services: + db: + image: mysql:5.7.44 + ports: + - 3307:3307 + env: + MYSQL_DATABASE: 'homework_assignment_2024_test' + MYSQL_USER: 'rails_user' + MYSQL_PASSWORD: 'password' + MYSQL_ROOT_PASSWORD: 'password' + MYSQL_ROOT_HOST: '%' + MYSQL_TCP_PORT: 3307 + # MYSQL_HOST: localhost + options: >- + --health-cmd "mysqladmin ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Show databases for root user + run: mysql --protocol=tcp -h 127.0.0.1 -P 3307 -u root -ppassword -e "SHOW DATABASES" + - name: Show databases for rails_user + run: mysql --protocol=tcp -h 127.0.0.1 -P 3307 -u rails_user -ppassword -e "SHOW DATABASES" + - uses: actions/setup-node@v1 + with: + node-version: 20.x + registry-url: 'https://registry.npmjs.org' + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + - run: bundle exec rake + # - name: Gem cache + # id: cache-bundle + # uses: actions/cache@v1 + # with: + # path: vendor/bundle + # key: 'bundle-${{ hashFiles(''**/Gemfile.lock'') }}' + # - name: Bundle install + # env: + # RAILS_ENV: test + # run: | + # gem install bundler + # bundle install --jobs 4 --retry 3 --path vendor/bundle + - name: Install yarn + run: npm install -g yarn + - name: Get yarn cache dir + id: yarn-cache-dir + run: 'echo "::set-output name=dir::$(yarn cache dir)"' + - name: Yarn cache + id: cache-yarn + uses: actions/cache@v1 + with: + path: '${{ steps.yarn-cache-dir.outputs.dir }}' + key: 'yarn-${{ hashFiles(''**/yarn.lock'') }}' + - name: Yarn install + run: yarn install + - name: 'Setup DB, Run tests' + env: + RAILS_ENV: test + run: bundle exec rails db:create db:schema:load + - name: Audit + env: + RAILS_ENV: test + run: bundle exec rake audit + - name: Rubocop + env: + RAILS_ENV: test + run: bundle exec rubocop + - name: RSpec + env: + RAILS_ENV: test + run: bundle exec rspec diff --git a/Gemfile.lock b/Gemfile.lock index c780028..bd0191c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,6 +133,8 @@ GEM nio4r (2.7.3) nokogiri (1.16.5-x86_64-darwin) racc (~> 1.4) + nokogiri (1.16.5-x86_64-linux) + racc (~> 1.4) parallel (1.24.0) parser (3.3.1.0) ast (~> 2.4.1) @@ -181,7 +183,8 @@ GEM regexp_parser (2.9.1) reline (0.4.2) io-console (~> 0.5) - rexml (3.2.6) + rexml (3.2.8) + strscan (>= 3.0.9) rspec-core (3.13.0) rspec-support (~> 3.13.0) rspec-expectations (3.13.0) @@ -246,6 +249,7 @@ GEM stimulus-rails (1.3.3) railties (>= 6.0.0) stringio (3.1.0) + strscan (3.1.0) thor (1.3.1) timeout (0.4.1) turbo-rails (1.5.0) @@ -267,6 +271,7 @@ GEM PLATFORMS x86_64-darwin-21 + x86_64-linux DEPENDENCIES bootsnap