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