diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b5801c5..dfeb617 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,151 +1,91 @@ name: Tests on: push: - branches: ['*'] + branches: ['master'] pull_request: - branches: ['*'] jobs: - test_sqlite: - runs-on: ubuntu-20.04 + test: + runs-on: ubuntu-latest + + env: + RAILS_ENV: test + strategy: fail-fast: false matrix: include: - ### TEST ALL RUBY VERSIONS, USE DEFAULT GEMFILE - - ruby: 2.3 ### min version supported by Bundler 2.x - - ruby: 2.4 - - ruby: 2.5 - - ruby: 2.6 - - ruby: 2.7 - - ruby: "3.0" ### must be quoted otherwise will be treated as "3" which will resolve to latest 3.x version - - ruby: 3.1 - - ### RAILS VERSION TESTING - - ruby: 2.6 - gemfile: gemfiles/rails_5.0.sqlite3.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_5.1.sqlite3.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_5.2.sqlite3.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_6.0.sqlite3.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_6.1.sqlite3.gemfile + ### TEST RUBY VERSIONS + - ruby: "2.5" + - ruby: "2.6" + - ruby: "2.7" - ruby: "3.0" - gemfile: gemfiles/rails_7.0.sqlite3.gemfile - - env: - BUNDLE_GEMFILE: "${{ matrix.gemfile }}" - - steps: - - uses: actions/checkout@v3 - - - name: Install ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: "${{ matrix.ruby }}" - bundler-cache: true - - - name: Run tests - run: | - bundle exec rake - + - ruby: "3.1" + - ruby: "3.2" + ### TEST RAILS VERSIONS + - ruby: "2.6" + env: + RAILS_VERSION: "5.1" + - ruby: "2.6" + env: + RAILS_VERSION: "5.2" + - ruby: "2.6" + env: + RAILS_VERSION: "6.0" + - ruby: "2.6" + env: + RAILS_VERSION: "6.1" + - ruby: "3.2" + env: + RAILS_VERSION: "7.0" + - ruby: "3.2" + env: + RAILS_VERSION: "7.1" + ### TEST NON-DEFAULT DATABASES + - ruby: "3.2" + db_gem: "mysql2" + - ruby: "3.2" + db_gem: "pg" - test_mysql: - runs-on: ubuntu-20.04 services: mysql: - image: mariadb + image: ${{ (matrix.db_gem == 'mysql2' && 'mysql') || '' }} # conditional service env: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: test options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 ports: ['3306:3306'] - - strategy: - fail-fast: false - matrix: - include: - ### RAILS VERSION TESTING - ### DONT WORRY ABOUT TESTING ALL RUBY VERSIONS. THIS IS COVERED IN THE SQLITE3 TESTS - - ruby: 2.6 - gemfile: gemfiles/rails_5.0.mysql2.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_5.1.mysql2.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_5.2.mysql2.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_6.0.mysql2.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_6.1.mysql2.gemfile - - ruby: "3.0" - gemfile: gemfiles/rails_7.0.mysql2.gemfile - - env: - BUNDLE_GEMFILE: "${{ matrix.gemfile }}" - steps: - - uses: actions/checkout@v3 - - - name: Install ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: "${{ matrix.ruby }}" - bundler-cache: true - - - name: Run tests - env: - DATABASE_URL: mysql2://root:password@127.0.0.1:3306/test - RAILS_ENV: test - run: | - bundle exec rake - - - test_pg: - runs-on: ubuntu-20.04 - services: postgres: - image: postgres + image: ${{ (matrix.db_gem == 'pg' && 'postgres') || '' }} # conditional service env: POSTGRES_USER: postgres POSTGRES_PASSWORD: password POSTGRES_DB: test ports: ['5432:5432'] - strategy: - fail-fast: false - matrix: - include: - ### RAILS VERSION TESTING - ### DONT WORRY ABOUT TESTING ALL RUBY VERSIONS. THIS IS COVERED IN THE SQLITE3 TESTS - - ruby: 2.6 - gemfile: gemfiles/rails_5.0.pg.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_5.1.pg.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_5.2.pg.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_6.0.pg.gemfile - - ruby: 2.6 - gemfile: gemfiles/rails_6.1.pg.gemfile - - ruby: "3.0" - gemfile: gemfiles/rails_7.0.pg.gemfile - - env: - BUNDLE_GEMFILE: "${{ matrix.gemfile }}" - steps: - uses: actions/checkout@v3 + - name: Set env DATABASE_URL + run: | + if [[ "${{ matrix.db_gem }}" == 'mysql2' ]]; then + echo "DATABASE_URL=mysql2://root:password@127.0.0.1:3306/test" >> "$GITHUB_ENV" + elif [[ "${{ matrix.db_gem }}" == 'pg' ]]; then + echo "DATABASE_URL=postgres://postgres:password@localhost:5432/test" >> "$GITHUB_ENV" + fi + + - name: Set env DB_GEM + if: ${{ matrix.db_gem }} + run: | + echo "DB_GEM=${{ matrix.db_gem }}" >> "$GITHUB_ENV" + - name: Install ruby uses: ruby/setup-ruby@v1 with: ruby-version: "${{ matrix.ruby }}" - bundler-cache: true + bundler-cache: false ### not compatible with ENV-style Gemfile - - name: Run tests - env: - DATABASE_URL: postgres://postgres:password@localhost:5432/test - RAILS_ENV: test + - name: Run test run: | - bundle exec rake + bundle install + bundle exec rake test diff --git a/Appraisals b/Appraisals deleted file mode 100644 index 0abad9c..0000000 --- a/Appraisals +++ /dev/null @@ -1,38 +0,0 @@ -["sqlite3", "mysql2", "pg"].each do |db_gem| - - appraise "rails_7.0.#{db_gem}" do - gem "rails", "~> 7.0.0" - gem db_gem - end - - appraise "rails_6.1.#{db_gem}" do - gem "rails", "~> 6.1.1" - gem db_gem - end - - appraise "rails_6.0.#{db_gem}" do - gem "rails", "~> 6.0.3" - gem db_gem - end - - appraise "rails_5.2.#{db_gem}" do - gem "rails", "~> 5.2.4" - gem db_gem - end - - appraise "rails_5.1.#{db_gem}" do - gem "rails", "~> 5.1.7" - gem db_gem - end - - appraise "rails_5.0.#{db_gem}" do - gem "rails", "~> 5.0.7" - - if db_gem == 'sqlite3' - gem "sqlite3", "~> 1.3.13" - else - gem db_gem - end - end - -end diff --git a/Gemfile b/Gemfile index 51ce83f..3c733c0 100644 --- a/Gemfile +++ b/Gemfile @@ -1,15 +1,12 @@ source 'https://rubygems.org' -if (RUBY_VERSION.to_f < 2.5 || false) ### set to true if locally testing old Rails version - #gem 'rails', '~> 5.0.7' - #gem 'rails', '~> 5.1.7' - gem 'rails', "~> 5.2.4" - gem 'sqlite3', '~> 1.3.13' -else - #gem 'rails', '~> 6.0.3' - #gem 'rails', '~> 6.1.1' - gem 'rails' - gem 'sqlite3' +gemspec + +def get_env(name) + (ENV[name] && !ENV[name].empty?) ? ENV[name] : nil end -gemspec +gem 'rails', get_env("RAILS_VERSION") + +db_gem = get_env("DB_GEM") || "sqlite3" +gem db_gem diff --git a/gemfiles/Rails_5.0.x.gemfile b/gemfiles/Rails_5.0.x.gemfile deleted file mode 100644 index 23d47f6..0000000 --- a/gemfiles/Rails_5.0.x.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.0.0" -gem "sqlite3", "~> 1.3.13" - -gemspec path: "../" diff --git a/gemfiles/Rails_5.1.x.gemfile b/gemfiles/Rails_5.1.x.gemfile deleted file mode 100644 index 6100e83..0000000 --- a/gemfiles/Rails_5.1.x.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.1.0" - -gemspec path: "../" diff --git a/gemfiles/Rails_5.2.x.gemfile b/gemfiles/Rails_5.2.x.gemfile deleted file mode 100644 index 5a706dc..0000000 --- a/gemfiles/Rails_5.2.x.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.2.0" - -gemspec path: "../" diff --git a/gemfiles/Rails_6.0.x.gemfile b/gemfiles/Rails_6.0.x.gemfile deleted file mode 100644 index 15b9b27..0000000 --- a/gemfiles/Rails_6.0.x.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 6.0.0" - -gemspec path: "../" diff --git a/gemfiles/Rails_6.1.x.gemfile b/gemfiles/Rails_6.1.x.gemfile deleted file mode 100644 index dd95a47..0000000 --- a/gemfiles/Rails_6.1.x.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 6.1.0" - -gemspec path: "../" diff --git a/gemfiles/rails_5.0.mysql2.gemfile b/gemfiles/rails_5.0.mysql2.gemfile deleted file mode 100644 index e06d123..0000000 --- a/gemfiles/rails_5.0.mysql2.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.0.7" -gem "sqlite3" -gem "mysql2" - -gemspec path: "../" diff --git a/gemfiles/rails_5.0.pg.gemfile b/gemfiles/rails_5.0.pg.gemfile deleted file mode 100644 index 9cf4869..0000000 --- a/gemfiles/rails_5.0.pg.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.0.7" -gem "sqlite3" -gem "pg" - -gemspec path: "../" diff --git a/gemfiles/rails_5.0.sqlite3.gemfile b/gemfiles/rails_5.0.sqlite3.gemfile deleted file mode 100644 index aef5856..0000000 --- a/gemfiles/rails_5.0.sqlite3.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.0.7" -gem "sqlite3", "~> 1.3.13" - -gemspec path: "../" diff --git a/gemfiles/rails_5.1.mysql2.gemfile b/gemfiles/rails_5.1.mysql2.gemfile deleted file mode 100644 index c30d6b9..0000000 --- a/gemfiles/rails_5.1.mysql2.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.1.7" -gem "sqlite3" -gem "mysql2" - -gemspec path: "../" diff --git a/gemfiles/rails_5.1.pg.gemfile b/gemfiles/rails_5.1.pg.gemfile deleted file mode 100644 index 667cebe..0000000 --- a/gemfiles/rails_5.1.pg.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.1.7" -gem "sqlite3" -gem "pg" - -gemspec path: "../" diff --git a/gemfiles/rails_5.1.sqlite3.gemfile b/gemfiles/rails_5.1.sqlite3.gemfile deleted file mode 100644 index 10a3df0..0000000 --- a/gemfiles/rails_5.1.sqlite3.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.1.7" -gem "sqlite3" - -gemspec path: "../" diff --git a/gemfiles/rails_5.2.mysql2.gemfile b/gemfiles/rails_5.2.mysql2.gemfile deleted file mode 100644 index 39a2c61..0000000 --- a/gemfiles/rails_5.2.mysql2.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.2.4" -gem "sqlite3" -gem "mysql2" - -gemspec path: "../" diff --git a/gemfiles/rails_5.2.pg.gemfile b/gemfiles/rails_5.2.pg.gemfile deleted file mode 100644 index a4970e1..0000000 --- a/gemfiles/rails_5.2.pg.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.2.4" -gem "sqlite3" -gem "pg" - -gemspec path: "../" diff --git a/gemfiles/rails_5.2.sqlite3.gemfile b/gemfiles/rails_5.2.sqlite3.gemfile deleted file mode 100644 index 01060f4..0000000 --- a/gemfiles/rails_5.2.sqlite3.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 5.2.4" -gem "sqlite3" - -gemspec path: "../" diff --git a/gemfiles/rails_6.0.mysql2.gemfile b/gemfiles/rails_6.0.mysql2.gemfile deleted file mode 100644 index f8ad0bd..0000000 --- a/gemfiles/rails_6.0.mysql2.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 6.0.3" -gem "sqlite3" -gem "mysql2" - -gemspec path: "../" diff --git a/gemfiles/rails_6.0.pg.gemfile b/gemfiles/rails_6.0.pg.gemfile deleted file mode 100644 index 6e7a298..0000000 --- a/gemfiles/rails_6.0.pg.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 6.0.3" -gem "sqlite3" -gem "pg" - -gemspec path: "../" diff --git a/gemfiles/rails_6.0.sqlite3.gemfile b/gemfiles/rails_6.0.sqlite3.gemfile deleted file mode 100644 index 04e8754..0000000 --- a/gemfiles/rails_6.0.sqlite3.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 6.0.3" -gem "sqlite3" - -gemspec path: "../" diff --git a/gemfiles/rails_6.1.mysql2.gemfile b/gemfiles/rails_6.1.mysql2.gemfile deleted file mode 100644 index aca3d96..0000000 --- a/gemfiles/rails_6.1.mysql2.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 6.1.1" -gem "sqlite3" -gem "mysql2" - -gemspec path: "../" diff --git a/gemfiles/rails_6.1.pg.gemfile b/gemfiles/rails_6.1.pg.gemfile deleted file mode 100644 index 9b2bde4..0000000 --- a/gemfiles/rails_6.1.pg.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 6.1.1" -gem "sqlite3" -gem "pg" - -gemspec path: "../" diff --git a/gemfiles/rails_6.1.sqlite3.gemfile b/gemfiles/rails_6.1.sqlite3.gemfile deleted file mode 100644 index 2787884..0000000 --- a/gemfiles/rails_6.1.sqlite3.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 6.1.1" -gem "sqlite3" - -gemspec path: "../" diff --git a/gemfiles/rails_7.0.mysql2.gemfile b/gemfiles/rails_7.0.mysql2.gemfile deleted file mode 100644 index 3d04a7e..0000000 --- a/gemfiles/rails_7.0.mysql2.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 7.0.0" -gem "sqlite3" -gem "mysql2" - -gemspec path: "../" diff --git a/gemfiles/rails_7.0.pg.gemfile b/gemfiles/rails_7.0.pg.gemfile deleted file mode 100644 index c7d0642..0000000 --- a/gemfiles/rails_7.0.pg.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 7.0.0" -gem "sqlite3" -gem "pg" - -gemspec path: "../" diff --git a/gemfiles/rails_7.0.sqlite3.gemfile b/gemfiles/rails_7.0.sqlite3.gemfile deleted file mode 100644 index 5b096eb..0000000 --- a/gemfiles/rails_7.0.sqlite3.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "~> 7.0.0" -gem "sqlite3" - -gemspec path: "../" diff --git a/protected_attributes_continued.gemspec b/protected_attributes_continued.gemspec index fb4098a..e509a03 100644 --- a/protected_attributes_continued.gemspec +++ b/protected_attributes_continued.gemspec @@ -22,5 +22,4 @@ Gem::Specification.new do |gem| gem.add_development_dependency "actionpack", ">= 5.0" gem.add_development_dependency "railties", ">= 5.0" gem.add_development_dependency "mocha", "~> 1.4.0" - gem.add_development_dependency 'appraisal' end