-
Notifications
You must be signed in to change notification settings - Fork 78
133 lines (128 loc) · 4.01 KB
/
build.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
133
name: build
on:
push:
branches:
- 'master'
- 'development'
pull_request:
branches:
- '**'
- '!images'
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
gemfile:
- gemfiles/Gemfile.rails-5.0
- gemfiles/Gemfile.rails-5.1
- gemfiles/Gemfile.rails-5.2
- gemfiles/Gemfile.rails-6.0
- gemfiles/Gemfile.rails-6.1
- gemfiles/Gemfile.rails-7.0
- gemfiles/Gemfile.rails-7.1
- gemfiles/Gemfile.rails-7.2
- gemfiles/Gemfile.rails-8.0
orm:
- active_record
- mongoid
- dynamoid
include:
# https://www.ruby-lang.org/en/downloads
- gemfile: gemfiles/Gemfile.rails-5.0
ruby-version: 2.7.7
- gemfile: gemfiles/Gemfile.rails-5.1
ruby-version: 2.7.7
- gemfile: gemfiles/Gemfile.rails-5.2
ruby-version: 2.7.7
- gemfile: gemfiles/Gemfile.rails-6.0
ruby-version: 2.7.7
- gemfile: gemfiles/Gemfile.rails-6.1
ruby-version: 2.7.7
- gemfile: gemfiles/Gemfile.rails-7.0
ruby-version: 3.1.6
- gemfile: gemfiles/Gemfile.rails-7.1
ruby-version: 3.2.4
- gemfile: gemfiles/Gemfile.rails-7.2
ruby-version: 3.3.4
- gemfile: gemfiles/Gemfile.rails-8.0
ruby-version: 3.3.6
- gemfile: Gemfile
ruby-version: 3.3.6
orm: active_record
test-db: mysql
- gemfile: Gemfile
ruby-version: 3.3.6
orm: active_record
test-db: postgresql
- gemfile: Gemfile
ruby-version: 3.3.6
orm: mongoid
test-db: mongodb
- gemfile: Gemfile
ruby-version: head
orm: active_record
allow_failures: 'true'
exclude:
- gemfile: gemfiles/Gemfile.rails-6.0
orm: dynamoid
- gemfile: gemfiles/Gemfile.rails-6.1
orm: dynamoid
- gemfile: gemfiles/Gemfile.rails-7.0
orm: dynamoid
- gemfile: gemfiles/Gemfile.rails-7.1
orm: dynamoid
- gemfile: gemfiles/Gemfile.rails-7.2
orm: dynamoid
- gemfile: gemfiles/Gemfile.rails-8.0
orm: dynamoid
env:
RAILS_ENV: test
BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
AN_ORM: ${{ matrix.orm }}
AN_TEST_DB: ${{ matrix.test-db }}
AWS_DEFAULT_REGION: ap-northeast-1
AWS_ACCESS_KEY_ID: dummy
AWS_SECRET_ACCESS_KEY: dummy
services:
mysql:
image: mysql
ports:
- 3306:3306
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: activity_notification_test
options: --health-cmd "mysqladmin ping -h 127.0.0.1" --health-interval 10s --health-timeout 5s --health-retries 5
postgres:
image: postgres
ports:
- 5432:5432
env:
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_DB: activity_notification_test
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
mongodb:
image: mongo
ports:
- 27017:27017
env:
MONGO_INITDB_DATABASE: activity_notification_test
options: --health-cmd mongosh --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- name: Setup Amazon DynamoDB Local
if: matrix.orm == 'dynamoid'
run: |
bin/install_dynamodblocal.sh
bin/start_dynamodblocal.sh
- name: Run tests with RSpec
run: bundle exec rspec
continue-on-error: ${{ matrix.allow_failures == 'true' }}
- name: Coveralls
uses: coverallsapp/github-action@v2