]> git.openstreetmap.org Git - rails.git/commitdiff
.github/workflows/lint.yml: Add task verifying annotations are up2date
authorGregory Igelmund <github.com@grekko.de>
Sat, 14 Oct 2023 03:22:40 +0000 (11:22 +0800)
committerGregory Igelmund <github.com@grekko.de>
Sat, 14 Oct 2023 03:28:44 +0000 (11:28 +0800)
.github/workflows/lint.yml
Gemfile
lib/tasks/auto_annotate_models.rake

index 685937b034ea026708e29bb1edc2ebcb5b02ec4f..cdba19949ef891ffec281613e8ea3aa050d7441f 100644 (file)
@@ -72,3 +72,27 @@ jobs:
         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 }}
+        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:test: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
diff --git a/Gemfile b/Gemfile
index 724dd3beccac75ba929b6ac55fa144ad97696215..d8d49a1ceb3be104e6522ad2764d3fc274e1c59f 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -136,7 +136,6 @@ gem "image_processing"
 
 # Gems useful for development
 group :development do
-  gem "annotate"
   gem "better_errors"
   gem "binding_of_caller"
   gem "debug_inspector"
@@ -167,3 +166,7 @@ group :test do
   gem "simplecov-lcov", :require => false
   gem "webmock"
 end
+
+group :development, :test do
+  gem "annotate"
+end
index 70bc391a0ab0672d944dadfa7ad1ec2535babeb8..103e7fcc9aa8312d9d143769264d6c9f71b521be 100644 (file)
@@ -1,7 +1,7 @@
 # NOTE: only doing this in development as some production environments (Heroku)
 # NOTE: are sensitive to local FS writes, and besides -- it's just not proper
 # NOTE: to have a dev-mode tool do its thing in production.
-if Rails.env.development?
+if Rails.env.development? || Rails.env.test?
   task :set_annotation_options => :environment do
     # You can override any of these by setting an environment variable of the
     # same name.