]> git.openstreetmap.org Git - rails.git/blobdiff - .github/workflows/lint.yml
Resourceful routing for passwords
[rails.git] / .github / workflows / lint.yml
index 11a4c322ff65bff1434e8ef509eb3a282ffc626e..0608b699bdfdcc56bb6f3f10087762b3546e3140 100644 (file)
@@ -6,45 +6,48 @@ concurrency:
   group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
   cancel-in-progress: true
 env:
   group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
   cancel-in-progress: true
 env:
-  os: ubuntu-20.04
-  ruby: 2.7
+  os: ubuntu-22.04
+  ruby: '3.0'
 jobs:
   rubocop:
     name: RuboCop
 jobs:
   rubocop:
     name: RuboCop
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
     - name: Check out code
     steps:
     - name: Check out code
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
     - name: Setup ruby
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
     - name: Setup ruby
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Run rubocop
       run: bundle exec rubocop --format fuubar
   erblint:
     name: ERB Lint
         bundler-cache: true
     - name: Run rubocop
       run: bundle exec rubocop --format fuubar
   erblint:
     name: ERB Lint
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
     - name: Check out code
     steps:
     - name: Check out code
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
     - name: Setup ruby
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
     - name: Setup ruby
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Run erblint
       run: bundle exec erblint .
   eslint:
     name: ESLint
         bundler-cache: true
     - name: Run erblint
       run: bundle exec erblint .
   eslint:
     name: ESLint
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
     - name: Check out code
     steps:
     - name: Check out code
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
     - name: Setup ruby
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
     - name: Setup ruby
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Cache node modules
       uses: actions/cache@v3
         bundler-cache: true
     - name: Cache node modules
       uses: actions/cache@v3
@@ -54,21 +57,47 @@ jobs:
         restore-keys: |
           yarn-${{ env.os }}-
     - name: Install node modules
         restore-keys: |
           yarn-${{ env.os }}-
     - name: Install node modules
-      run: bundle exec rake yarn:install
+      run: bundle exec bin/yarn install
     - name: Create dummy database configuration
       run: cp config/example.database.yml config/database.yml
     - name: Run eslint
     - name: Create dummy database configuration
       run: cp config/example.database.yml config/database.yml
     - name: Run eslint
-      run: bundle exec rake eslint
+      run: bundle exec rails eslint
   brakeman:
     name: Brakeman
   brakeman:
     name: Brakeman
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
     - name: Check out code
     steps:
     - name: Check out code
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
     - name: Setup ruby
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
     - name: Setup ruby
       uses: ruby/setup-ruby@v1
       with:
         ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
         bundler-cache: true
     - name: Run brakeman
       run: bundle exec brakeman -q
         bundler-cache: true
     - name: Run brakeman
       run: bundle exec brakeman -q
+  annotate_models:
+    env:
+      RAILS_ENV: test
+    name: Rails Annotate Models
+    runs-on: ubuntu-22.04
+    steps:
+    - name: Check out code
+      uses: actions/checkout@v4
+    - name: Setup ruby
+      uses: ruby/setup-ruby@v1
+      with:
+        ruby-version: ${{ env.ruby }}
+        rubygems: 3.4.10
+        bundler-cache: true
+    - name: Setup database
+      run: |
+        sudo systemctl start postgresql
+        sudo -u postgres createuser -s $(id -un)
+        createdb openstreetmap
+        cp config/github.database.yml config/database.yml
+        bundle exec rails db:schema:load
+    - name: Run Annotate Models
+      run: bundle exec rails annotate_models
+    - name: Fail if model annotations are out of date
+      run: git diff --exit-code