-
-
Notifications
You must be signed in to change notification settings - Fork 493
91 lines (85 loc) · 2.75 KB
/
rspec-system.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
name: rspec-system
on:
push:
branches:
- main
pull_request:
branches:
- main
paths-ignore:
- 'doc/**'
- '*.md'
- 'bin/*'
jobs:
rspec-system:
runs-on: ubuntu-latest
services:
db:
image: postgres:12.3
env:
POSTGRES_PASSWORD: password
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
# https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix
strategy:
fail-fast: false
matrix:
# Set N number of parallel jobs you want to run tests on.
# Use higher number if you have slow tests to split them on more parallel jobs.
# Remember to update ci_node_index below to 0..N-1
ci_node_total: [6]
# set N-1 indexes for parallel jobs
# When you run 2 parallel jobs then first job will have index 0, the second job will have index 1 etc
ci_node_index: [0, 1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install PostgreSQL client
run: |
sudo apt-get -yqq install libpq-dev
- name: Build App with asset compilation
env:
POSTGRES_HOST: localhost
DATABASE_HOST: localhost
PG_USERNAME: postgres
PG_PASSWORD: password
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_PORT: 5432
RAILS_ENV: test
run: |
bundle exec rake db:create
bundle exec rake db:schema:load
bundle exec rails assets:precompile
- name: Run rspec
env:
POSTGRES_HOST: localhost
DATABASE_HOST: localhost
PG_USERNAME: postgres
PG_PASSWORD: password
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_PORT: 5432
PGHOST: localhost
PGUSER: postgres
RAILS_ENV: test
KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }}
KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }}
KNAPSACK_PRO_RSPEC_SPLIT_BY_TEST_EXAMPLES: true
KNAPSACK_PRO_LOG_LEVEL: info
KNAPSACK_PRO_TEST_FILE_PATTERN: "{spec/system/**{,/*/**}/*_spec.rb,spec/requests/**{,/*/**}/*_spec.rb}"
run: |
RUBYOPT='-W:no-deprecated -W:no-experimental' bin/knapsack_pro_rspec
- name: Upload artifacts
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: failed-browser-tests
path: tmp/capybara