-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (111 loc) · 3.62 KB
/
test.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
134
name: Run RSpec, RuboCop, Jest, ESLint
on:
push:
pull_request:
jobs:
RSpec:
runs-on: ubuntu-latest
timeout-minutes: 10
services:
mysql:
image: mysql:8.0
ports:
- 3306:3306
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
options: --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 10
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.0.2
- name: Cache node modules
uses: actions/cache@v2
with:
path: back/node_modules
key: ${{ runner.os }}-node-${{ hashFiles('back/**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node-
- name: Bundler and gem install
working-directory: back
run: |
gem install bundler
bundle install --jobs 4 --retry 3 --path vendor/bundle
- name: Yarn install
working-directory: back
run: yarn install --check-files
- name: Database create and migrate
working-directory: back
run: |
cp config/database.yml.ci config/database.yml
bundle exec rails db:create RAILS_ENV=test
bundle exec rails db:migrate RAILS_ENV=test
- name: Run RSpec
working-directory: back
run: bundle exec rspec
RuboCop:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.0.2
- name: Bundler and gem install
working-directory: back
run: |
gem install bundler
bundle install --jobs 4 --retry 3 --path vendor/bundle
- name: Run RuboCop
working-directory: back
run: bundle exec rubocop
Jest:
runs-on: ubuntu-latest
timeout-minutes: 10
env:
NEXT_PUBLIC_IS_DEV: true
NEXT_PUBLIC_API_ENDPOINT_USERS: http://localhost:3000/api/v1/users
NEXT_PUBLIC_API_ENDPOINT_RELATIONSHIPS: http://localhost:3000/api/v1/relationships
NEXT_PUBLIC_API_ENDPOINT_LOGIN: http://localhost:3000/api/v1/login
NEXT_PUBLIC_API_ENDPOINT_LOGOUT: http://localhost:3000/api/v1/logout
NEXT_PUBLIC_API_ENDPOINT_TWEETS: http://localhost:3000/api/v1/tweets
NEXT_PUBLIC_API_ENDPOINT_COMMUNITIES: http://localhost:3000/api/v1/communities
NEXT_PUBLIC_API_ENDPOINT_GADGETS: http://localhost:3000/api/v1/gadgets
NEXT_PUBLIC_API_ENDPOINT_GUEST: http://localhost:3000/api/v1/guest_login
API_ENDPOINT_CHECK_SESSION: http://back:3000/api/v1/check
API_ENDPOINT_USERS: http://back:3000/api/v1/users
API_ENDPOINT_COMMUNITIES: http://back:3000/api/v1/communities
API_ENDPOINT_GADGETS: http://back:3000/api/v1/gadgets
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Yarn install
working-directory: front/app
run: yarn install
- name: Run Jest
working-directory: front/app
run: yarn jest
ESLint:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Yarn install
working-directory: front/app
run: yarn install
- name: Run ESLint
working-directory: front/app
run: yarn run lint