-
Notifications
You must be signed in to change notification settings - Fork 31
132 lines (108 loc) · 3.22 KB
/
ci.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: CI
on:
pull_request:
branches:
- '*'
push:
branches:
- '*'
schedule:
- cron: '0 0 * * *'
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby: ['2.7', '3.0', '3.1', '3.2']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Run Unit tests
run: bundle exec rake spec:unit
- name: Run Standard linter
run: bundle exec standardrb
integration:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# adapter: [ 'mysql2', 'pg', 'sqlite3' ]
ruby: [ '2.7', '3.0', '3.1', '3.2' ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Start MySQL
run: sudo systemctl start mysql.service
- name: Start and setup Postgres
run: |
sudo systemctl start postgresql.service
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'root'"
# https://github.com/actions/runner-images/issues/7678
- name: Install dummyapp dependencies (sqlite)
run: bundle install
working-directory: spec/dummyapp
env:
DATABASE_ADAPTER: sqlite3
- name: Run dummyapp migrations (sqlite)
run: bin/rails db:create && bin/rails db:migrate
working-directory: spec/dummyapp
env:
DATABASE_ADAPTER: sqlite3
- name: Run Integration tests (sqlite)
run: bundle exec rake spec:integration
env:
DATABASE_ADAPTER: sqlite3
- name: Clean dummyapp (sqlite)
run: |
rm -f Gemfile.lock
rm -f db/schema.rb
working-directory: spec/dummyapp
- name: Install dummyapp dependencies (mysql2)
run: bundle install
working-directory: spec/dummyapp
env:
DATABASE_ADAPTER: mysql2
- name: Run dummyapp migrations (mysql2)
run: bin/rails db:create && bin/rails db:migrate
working-directory: spec/dummyapp
env:
DATABASE_ADAPTER: mysql2
- name: Run Integration tests (mysql2)
run: bundle exec rake spec:integration
env:
DATABASE_ADAPTER: mysql2
- name: Clean dummyapp (mysql2)
run: |
rm -f Gemfile.lock
rm -f db/schema.rb
working-directory: spec/dummyapp
- name: Install dummyapp dependencies (pg)
run: bundle install
working-directory: spec/dummyapp
env:
DATABASE_ADAPTER: pg
- name: Run dummyapp migrations (pg)
run: bin/rails db:create && bin/rails db:migrate
working-directory: spec/dummyapp
env:
DATABASE_ADAPTER: pg
- name: Run Integration tests (pg)
run: bundle exec rake spec:integration
env:
DATABASE_ADAPTER: pg
- name: Clean dummyapp (pg)
run: |
rm -f Gemfile.lock
rm -f db/schema.rb
working-directory: spec/dummyapp