]> git.openstreetmap.org Git - rails.git/blob - .github/workflows/lint.yml
Use ubuntu-latest for all workflows
[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   ruby: '3.1'
10 jobs:
11   rubocop:
12     name: RuboCop
13     runs-on: ubuntu-latest
14     steps:
15     - name: Check out code
16       uses: actions/checkout@v4
17     - name: Setup ruby
18       uses: ruby/setup-ruby@v1
19       with:
20         ruby-version: ${{ env.ruby }}
21         rubygems: 3.4.10
22         bundler-cache: true
23     - name: Run rubocop
24       run: bundle exec rubocop --format fuubar
25   erblint:
26     name: ERB Lint
27     runs-on: ubuntu-22.04
28     steps:
29     - name: Check out code
30       uses: actions/checkout@v4
31     - name: Setup ruby
32       uses: ruby/setup-ruby@v1
33       with:
34         ruby-version: ${{ env.ruby }}
35         rubygems: 3.4.10
36         bundler-cache: true
37     - name: Run erblint
38       run: bundle exec erb_lint .
39   eslint:
40     name: ESLint
41     runs-on: ubuntu-22.04
42     steps:
43     - name: Check out code
44       uses: actions/checkout@v4
45     - name: Setup ruby
46       uses: ruby/setup-ruby@v1
47       with:
48         ruby-version: ${{ env.ruby }}
49         rubygems: 3.4.10
50         bundler-cache: true
51     - name: Cache node modules
52       uses: actions/setup-node@v4
53       with:
54         cache: yarn
55     - name: Install node modules
56       run: bundle exec bin/yarn install
57     - name: Create dummy database configuration
58       run: cp config/example.database.yml config/database.yml
59     - name: Run eslint
60       run: bundle exec rails eslint
61   brakeman:
62     name: Brakeman
63     runs-on: ubuntu-22.04
64     steps:
65     - name: Check out code
66       uses: actions/checkout@v4
67     - name: Setup ruby
68       uses: ruby/setup-ruby@v1
69       with:
70         ruby-version: ${{ env.ruby }}
71         rubygems: 3.4.10
72         bundler-cache: true
73     - name: Run brakeman
74       run: bundle exec brakeman -q
75   annotate_models:
76     env:
77       RAILS_ENV: test
78     name: Rails Annotate Models
79     runs-on: ubuntu-22.04
80     steps:
81     - name: Check out code
82       uses: actions/checkout@v4
83     - name: Setup ruby
84       uses: ruby/setup-ruby@v1
85       with:
86         ruby-version: ${{ env.ruby }}
87         rubygems: 3.4.10
88         bundler-cache: true
89     - name: Setup database
90       run: |
91         sudo systemctl start postgresql
92         sudo -u postgres createuser -s $(id -un)
93         createdb openstreetmap
94         cp config/github.database.yml config/database.yml
95         bundle exec rails db:schema:load
96     - name: Run Annotate Models
97       run: bundle exec rails annotate_models
98     - name: Fail if model annotations are out of date
99       run: git diff --exit-code