Skip to content

Commit

Permalink
Create ruby.yml
Browse files Browse the repository at this point in the history
example workflow

Update ruby.yml

limit builds

Update ruby.yml

postgres service

Update ruby.yml

pg_port

copy config files

Update ruby.yml

Update ruby.yml

Update database_travis.yml

Update ruby.yml

Update ruby.yml

bump wkhtmltopdf-binary

Unlock gem 'wkhtmltopdf-binary'

Update ruby.yml

Update ruby.yml

Update ruby.yml

remove Lockfile

restore Gemfile

test only ubuntu-18.04

bundle env

remove deploy deps

remove mina dep

use rexml from bundle rather then std-lib to support ruby 3.0

install rexml

drop ruby 3.0, cleanup workflow

fix codeclimate sorting issue

Codeclimate reporting

stop using deprecated set-env

use simplecov formater

simplecov in after-build

fix yaml syntax

run in debug mode

Set correct env var to run coverage

cleanup, provide CC_TEST_REPORTER_ID secret

combine multiple results

more variables

pull/commit different envs

Change test command to get more coverage
  • Loading branch information
teadur authored and yulgolem committed Dec 7, 2020
1 parent 331ade9 commit 95e5d69
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 18 deletions.
117 changes: 117 additions & 0 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Github Testing
on: [push]


jobs:
test:
services:
postgres:
image: postgres:12
ports: ["5432:5432"]
env:
POSTGRES_PASSWORD: password
POSTGRES_USERNAME: postgres
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04]
ruby: [2.6, 2.7 ]
runs-on: ${{ matrix.os }}
continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
steps:

- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: config bundler
run: |
bundle config set without 'development staging production'
bundle config set deployment '[secure]'
bundle env
head -n1 $(which bundle)
- name: Set ENV for codeclimate (pull_request)
run: |
git fetch --no-tags --prune --depth=1 origin +refs/heads/$GITHUB_HEAD_REF:refs/remotes/origin/$GITHUB_HEAD_REF
echo "GIT_BRANCH=$GITHUB_HEAD_REF" >> $GITHUB_ENV
echo "GIT_COMMIT_SHA=$(git rev-parse origin/$GITHUB_HEAD_REF)" >> $GITHUB_ENV
if: github.event_name == 'pull_request'

- name: Set ENV for codeclimate (push)
run: |
echo "GIT_BRANCH=$GITHUB_REF" >> $GITHUB_ENV
echo "GIT_COMMIT_SHA=$GITHUB_SHA" >> $GITHUB_ENV
if: github.event_name == 'push'

- name: Prepare CodeClimate
env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
run: |
curl -LSs 'https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64' >./cc-test-reporter;
chmod +x ./cc-test-reporter
./cc-test-reporter before-build
- name: Run Tests
env:
PG_DATABASE: postgres
PG_HOST: localhost
PG_USER: postgres
PG_PASSWORD: password
PG_PORT: ${{ job.services.postgres.ports[5432] }}
RAILS_ENV: test
COVERAGE: true
DISABLE_SPRING: 1
run: |
cp config/application.yml.sample config/application.yml
cp config/database_travis.yml config/database.yml
echo "openssl_config_path: 'test/fixtures/files/test_ca/openssl.cnf'" >> config/application.yml
echo "crl_dir: 'test/fixtures/files/test_ca/crl'" >> config/application.yml
echo "crl_path: 'test/fixtures/files/test_ca/crl/crl.pem'" >> config/application.yml
echo "ca_cert_path: 'test/fixtures/files/test_ca/certs/ca.crt.pem'" >> config/application.yml
echo "ca_key_path: 'test/fixtures/files/test_ca/private/ca.key.pem'" >> config/application.yml
echo "ca_key_password: 'password'" >> config/application.yml
bundle exec rake db:setup:all
bundle exec rails test test/*
- name: Save coverage
run: ./cc-test-reporter format-coverage --output coverage/codeclimate.${{ matrix.ruby }}.json

- uses: actions/upload-artifact@v1
with:
name: coverage-${{ matrix.ruby }}
path: coverage/codeclimate.${{ matrix.ruby }}.json

upload_coverage:
runs-on: ubuntu-18.04

env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
CC_TEST_REPORTER_URL: https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64

needs: test

steps:
- name: Download test coverage reporter
run: curl -L $CC_TEST_REPORTER_URL > cc-test-reporter

- name: Give test coverage reporter executable permissions
run: chmod +x cc-test-reporter

- uses: actions/download-artifact@v1
with:
name: coverage-2.6
path: coverage

- uses: actions/download-artifact@v1
with:
name: coverage-2.7
path: coverage

- name: Aggregate & upload results to Code Climate
run: |
./cc-test-reporter sum-coverage coverage/codeclimate.*.json
./cc-test-reporter upload-coverage
6 changes: 1 addition & 5 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,11 @@ gem 'e_invoice', github: 'internetee/e_invoice', branch: :master
gem 'lhv', github: 'internetee/lhv', branch: 'master'
gem 'domain_name'
gem 'haml', '~> 5.0'
gem 'rexml'
gem 'wkhtmltopdf-binary', '~> 0.12.5.1'

gem 'directo', github: 'internetee/directo', branch: 'master'

group :development do
# deploy
gem 'listen', '3.2.1'
gem 'mina', '0.3.1' # for fast deployment
end

group :development, :test do
gem 'pry', '0.10.1'
Expand Down
14 changes: 2 additions & 12 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -277,9 +277,6 @@ GEM
kaminari-core (= 1.2.1)
kaminari-core (1.2.1)
libxml-ruby (3.2.0)
listen (3.2.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.4.2)
loofah (2.7.0)
crass (~> 1.0.2)
Expand All @@ -293,9 +290,6 @@ GEM
mime-types-data (~> 3.2015)
mime-types-data (3.2020.0512)
mimemagic (0.3.5)
mina (0.3.1)
open4 (~> 1.3.4)
rake
mini_mime (1.0.2)
mini_portile2 (2.4.0)
minitest (5.14.2)
Expand Down Expand Up @@ -325,7 +319,6 @@ GEM
omniauth-rails_csrf_protection (0.1.2)
actionpack (>= 4.2)
omniauth (>= 1.3.1)
open4 (1.3.4)
openid_connect (1.2.0)
activemodel
attr_required (>= 1.0.0)
Expand Down Expand Up @@ -401,9 +394,6 @@ GEM
activesupport (>= 5.2.1)
i18n
polyamorous (= 2.3.2)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rbtree3 (0.6.0)
regexp_parser (1.8.0)
request_store (1.5.0)
Expand All @@ -416,6 +406,7 @@ GEM
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
rexml (3.2.4)
ruby2_keywords (0.0.2)
rubyzip (2.3.0)
sass-rails (6.0.0)
Expand Down Expand Up @@ -550,8 +541,6 @@ DEPENDENCIES
jquery-ui-rails (= 5.0.5)
kaminari
lhv!
listen (= 3.2.1)
mina (= 0.3.1)
minitest (~> 5.14)
money-rails
nokogiri
Expand All @@ -568,6 +557,7 @@ DEPENDENCIES
rails (~> 6.0)
ransack (~> 2.3)
rest-client
rexml
sass-rails
select2-rails (= 3.5.9.3)
selectize-rails (= 0.12.1)
Expand Down
2 changes: 1 addition & 1 deletion config/database_travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ default: &default
encoding: unicode
pool: 5
username: postgres
password:
password: password

test:
<<: *default
Expand Down
1 change: 1 addition & 0 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
add_filter '/lib/core_monkey_patches/'
add_filter '/lib/daemons/'
add_filter '/lib/gem_monkey_patches/'
add_filter '/lib/tasks/'
end
end

Expand Down

0 comments on commit 95e5d69

Please sign in to comment.