]> git.openstreetmap.org Git - rails.git/blob - .github/workflows/lint.yml
f452d8445b511983db52d8e072a3c2778fc6c3be
[rails.git] / .github / workflows / lint.yml
1 name: Lint
2 on:
3   - push
4   - pull_request
5 env:
6   os: ubuntu-20.04
7   ruby: 2.7
8 jobs:
9   rubocop:
10     name: RuboCop
11     runs-on: ubuntu-20.04
12     steps:
13     - name: Check out code
14       uses: actions/checkout@v2.3.4
15     - name: Setup ruby
16       uses: actions/setup-ruby@v1.1.3
17       with:
18         ruby-version: ${{ env.ruby }}
19     - name: Cache gems
20       uses: actions/cache@v2.1.5
21       with:
22         path: vendor/bundle
23         key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
24         restore-keys: |
25           bundle-${{ env.os }}-${{ env.ruby }}-
26     - name: Install gems
27       run: |
28         gem install bundler
29         bundle config set deployment true
30         bundle install --jobs 4 --retry 3
31     - name: Run rubocop
32       run: bundle exec rubocop --format fuubar
33   erblint:
34     name: ERB Lint
35     runs-on: ubuntu-20.04
36     steps:
37     - name: Check out code
38       uses: actions/checkout@v2.3.4
39     - name: Setup ruby
40       uses: actions/setup-ruby@v1.1.3
41       with:
42         ruby-version: ${{ env.ruby }}
43     - name: Cache gems
44       uses: actions/cache@v2.1.5
45       with:
46         path: vendor/bundle
47         key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
48         restore-keys: |
49           bundle-${{ env.os }}-${{ env.ruby }}-
50     - name: Install gems
51       run: |
52         gem install bundler
53         bundle config set deployment true
54         bundle install --jobs 4 --retry 3
55     - name: Run erblint
56       run: bundle exec erblint .
57   eslint:
58     name: ESLint
59     runs-on: ubuntu-20.04
60     steps:
61     - name: Check out code
62       uses: actions/checkout@v2.3.4
63     - name: Setup ruby
64       uses: actions/setup-ruby@v1.1.3
65       with:
66         ruby-version: ${{ env.ruby }}
67     - name: Cache gems
68       uses: actions/cache@v2.1.5
69       with:
70         path: vendor/bundle
71         key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
72         restore-keys: |
73           bundle-${{ env.os }}-${{ env.ruby }}-
74     - name: Cache node modules
75       uses: actions/cache@v2.1.5
76       with:
77         path: node_modules
78         key: yarn-${{ env.os }}-${{ hashFiles('yarn.lock') }}
79         restore-keys: |
80           yarn-${{ env.os }}-
81     - name: Install gems
82       run: |
83         gem install bundler
84         bundle config set deployment true
85         bundle install --jobs 4 --retry 3
86     - name: Install node modules
87       run: bundle exec rake yarn:install
88     - name: Create dummy database configuration
89       run: cp config/example.database.yml config/database.yml
90     - name: Run eslint
91       run: bundle exec rake eslint
92   brakeman:
93     name: Brakeman
94     runs-on: ubuntu-20.04
95     steps:
96     - name: Check out code
97       uses: actions/checkout@v2.3.4
98     - name: Setup ruby
99       uses: actions/setup-ruby@v1.1.3
100       with:
101         ruby-version: ${{ env.ruby }}
102     - name: Cache gems
103       uses: actions/cache@v2.1.5
104       with:
105         path: vendor/bundle
106         key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
107         restore-keys: |
108           bundle-${{ env.os }}-${{ env.ruby }}-
109     - name: Install gems
110       run: |
111         gem install bundler
112         bundle config set deployment true
113         bundle install --jobs 4 --retry 3
114     - name: Run brakeman
115       run: bundle exec brakeman -q