Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 178 additions & 0 deletions .github/workflows/prs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# This file was auto-generated by the schema_dev tool, based on the data in
# ./schema_dev.yml
# Please do not edit this file; any changes will be overwritten next time
# schema_dev gets run.
---
name: CI PR Builds
'on':
push:
branches:
- master
pull_request:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby:
- '2.5'
- '2.7'
- '3.0'
activerecord:
- '5.2'
- '6.0'
db:
- skip
dbversion:
- skip
exclude:
- ruby: '3.0'
activerecord: '5.2'
- db: skip
dbversion: skip
include:
- ruby: '2.5'
activerecord: '5.2'
db: postgresql
dbversion: '9.6'
- ruby: '2.5'
activerecord: '5.2'
db: postgresql
dbversion: '10'
- ruby: '2.5'
activerecord: '5.2'
db: postgresql
dbversion: '11'
- ruby: '2.5'
activerecord: '5.2'
db: postgresql
dbversion: '12'
- ruby: '2.5'
activerecord: '6.0'
db: postgresql
dbversion: '9.6'
- ruby: '2.5'
activerecord: '6.0'
db: postgresql
dbversion: '10'
- ruby: '2.5'
activerecord: '6.0'
db: postgresql
dbversion: '11'
- ruby: '2.5'
activerecord: '6.0'
db: postgresql
dbversion: '12'
- ruby: '2.7'
activerecord: '5.2'
db: postgresql
dbversion: '9.6'
- ruby: '2.7'
activerecord: '5.2'
db: postgresql
dbversion: '10'
- ruby: '2.7'
activerecord: '5.2'
db: postgresql
dbversion: '11'
- ruby: '2.7'
activerecord: '5.2'
db: postgresql
dbversion: '12'
- ruby: '2.7'
activerecord: '6.0'
db: postgresql
dbversion: '9.6'
- ruby: '2.7'
activerecord: '6.0'
db: postgresql
dbversion: '10'
- ruby: '2.7'
activerecord: '6.0'
db: postgresql
dbversion: '11'
- ruby: '2.7'
activerecord: '6.0'
db: postgresql
dbversion: '12'
- ruby: '3.0'
activerecord: '6.0'
db: postgresql
dbversion: '9.6'
- ruby: '3.0'
activerecord: '6.0'
db: postgresql
dbversion: '10'
- ruby: '3.0'
activerecord: '6.0'
db: postgresql
dbversion: '11'
- ruby: '3.0'
activerecord: '6.0'
db: postgresql
dbversion: '12'
env:
BUNDLE_GEMFILE: "${{ github.workspace }}/gemfiles/activerecord-${{ matrix.activerecord }}/Gemfile.${{ matrix.db }}"
POSTGRESQL_DB_HOST: 127.0.0.1
POSTGRESQL_DB_USER: schema_plus_test
POSTGRESQL_DB_PASS: database
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "${{ matrix.ruby }}"
bundler-cache: true
- name: Run bundle update
run: bundle update
- name: Start Postgresql
if: matrix.db == 'postgresql'
run: |
docker run --rm --detach \
-e POSTGRES_USER=$POSTGRESQL_DB_USER \
-e POSTGRES_PASSWORD=$POSTGRESQL_DB_PASS \
-p 5432:5432 \
--health-cmd "pg_isready -q" \
--health-interval 5s \
--health-timeout 5s \
--health-retries 5 \
--name database postgres:${{ matrix.dbversion }}
- name: Wait for database to start
if: "(matrix.db == 'postgresql' || matrix.db == 'mysql2')"
run: |
COUNT=0
ATTEMPTS=20
until [[ $COUNT -eq $ATTEMPTS ]]; do
[ "$(docker inspect -f {{.State.Health.Status}} database)" == "healthy" ] && break
echo $(( COUNT++ )) > /dev/null
sleep 2
done
- name: Create testing database
if: "(matrix.db == 'postgresql' || matrix.db == 'mysql2')"
run: bundle exec rake create_ci_database
- name: Run tests
run: bundle exec rake spec
- name: Shutdown database
if: always() && (matrix.db == 'postgresql' || matrix.db == 'mysql2')
run: docker stop database
- name: Coveralls Parallel
if: "${{ !env.ACT }}"
uses: coverallsapp/github-action@master
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
flag-name: run-${{ matrix.ruby }}-${{ matrix.activerecord }}-${{ matrix.db }}-${{ matrix.dbversion }}
parallel: true
finish:
needs: test
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
if: "${{ !env.ACT }}"
uses: coverallsapp/github-action@master
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
parallel-finished: true
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
/tmp
/pkg
/Gemfile.local
/.idea

*.lock
*.log
20 changes: 20 additions & 0 deletions .simplecov
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# frozen_string_literal: true

SimpleCov.configure do
enable_coverage :branch
add_filter '/spec/'

add_group 'Binaries', '/bin/'
add_group 'Libraries', '/lib/'

if ENV['CI']
require 'simplecov-lcov'

SimpleCov::Formatter::LcovFormatter.config do |c|
c.report_with_single_file = true
c.single_report_path = 'coverage/lcov.info'
end

formatter SimpleCov::Formatter::LcovFormatter
end
end
38 changes: 0 additions & 38 deletions .travis.yml

This file was deleted.

16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[![Gem Version](https://badge.fury.io/rb/schema_plus_functions.svg)](http://badge.fury.io/rb/schema_plus_functions)
[![Build Status](https://secure.travis-ci.org/SchemaPlus/schema_plus_functions.svg)](http://travis-ci.org/SchemaPlus/schema_plus_functions)
[![Coverage Status](https://img.shields.io/coveralls/SchemaPlus/schema_plus_functions.svg)](https://coveralls.io/r/SchemaPlus/schema_plus_functions)
[![Dependency Status](https://gemnasium.com/SchemaPlus/schema_plus_functions.svg)](https://gemnasium.com/SchemaPlus/schema_plus_functions)
[![Build Status](https://github.com/SchemaPlus/schema_plus_functions/actions/workflows/prs.yml/badge.svg)](https://github.com/SchemaPlus/schema_plus_functions/actions)
[![Coverage Status](https://coveralls.io/repos/github/SchemaPlus/schema_plus_functions/badge.svg)](https://coveralls.io/github/SchemaPlus/schema_plus_functions)

# SchemaPlus::Functions

Expand Down Expand Up @@ -85,12 +84,16 @@ SchemaPlus::Functions is tested on:

<!-- SCHEMA_DEV: MATRIX - begin -->
<!-- These lines are auto-generated by schema_dev based on schema_dev.yml -->
* ruby **2.3.1** with activerecord **5.2**, using **postgresql**
* ruby **2.5** with activerecord **5.2**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12**
* ruby **2.5** with activerecord **6.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12**
* ruby **2.7** with activerecord **5.2**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12**
* ruby **2.7** with activerecord **6.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12**
* ruby **3.0** with activerecord **6.0**, using **postgresql:9.6**, **postgresql:10**, **postgresql:11** or **postgresql:12**

<!-- SCHEMA_DEV: MATRIX - end -->

## History

* 1.0.0 - Drop AR < 5.2, add <= 6.0 and Ruby 3.0
* 0.2.0 - Add suppot for PostgreSQL 11+
* 0.1.0 - Initial release

Expand All @@ -107,7 +110,7 @@ Some things to know about to help you develop and test:
* **schema_dev**: SchemaPlus::Functions uses [schema_dev](https://github.com/SchemaPlus/schema_dev) to
facilitate running rspec tests on the matrix of ruby, activerecord, and database
versions that the gem supports, both locally and on
[travis-ci](http://travis-ci.org/SchemaPlus/schema_plus_functions)
[github actions](https://github.com/SchemaPlus/schema_plus_functions/actions)

To to run rspec locally on the full matrix, do:

Expand All @@ -119,7 +122,6 @@ Some things to know about to help you develop and test:
The matrix of configurations is specified in `schema_dev.yml` in
the project root.


<!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_DEV - end -->

<!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_PLUS_CORE - begin -->
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/Gemfile.base
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
source 'https://rubygems.org'
gemspec :path => File.expand_path('..', __FILE__)
gemspec path: File.expand_path('..', __FILE__)

File.exist?(gemfile_local = File.expand_path('../Gemfile.local', __FILE__)) and eval File.read(gemfile_local), binding, gemfile_local
3 changes: 2 additions & 1 deletion gemfiles/activerecord-5.2/Gemfile.base
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
eval File.read File.expand_path('../../Gemfile.base', __FILE__)
base_gemfile = File.expand_path('../../Gemfile.base', __FILE__)
eval File.read(base_gemfile)

gem "activerecord", ">= 5.2.0.beta0", "< 5.3"
4 changes: 2 additions & 2 deletions gemfiles/activerecord-5.2/Gemfile.postgresql
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
require "pathname"
eval(Pathname.new(__FILE__).dirname.join("Gemfile.base").read, binding)
base_gemfile = File.expand_path('../Gemfile.base', __FILE__)
eval File.read(base_gemfile), binding, base_gemfile

platform :ruby do
gem "pg"
Expand Down
4 changes: 4 additions & 0 deletions gemfiles/activerecord-6.0/Gemfile.base
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
base_gemfile = File.expand_path('../../Gemfile.base', __FILE__)
eval File.read(base_gemfile)

gem "activerecord", ">= 6.0", "< 6.1"
10 changes: 10 additions & 0 deletions gemfiles/activerecord-6.0/Gemfile.postgresql
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
base_gemfile = File.expand_path('../Gemfile.base', __FILE__)
eval File.read(base_gemfile), binding, base_gemfile

platform :ruby do
gem "pg"
end

platform :jruby do
gem 'activerecord-jdbcpostgresql-adapter'
end
4 changes: 2 additions & 2 deletions lib/schema_plus/functions/middleware.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def after(env)
heredelim = "END_FUNCTION_#{function_name.upcase}"
extra_options = ", function_type: :#{function_type}" if function_type.present?
statement = <<~ENDFUNCTION
create_function "#{function_name}", "#{full_params}", <<-'#{heredelim}', :force => true#{extra_options}
create_function "#{function_name}", "#{full_params}", <<-'#{heredelim}', :force => true#{extra_options}
#{definition}
#{heredelim}
ENDFUNCTION
Expand Down Expand Up @@ -42,4 +42,4 @@ module DropFunction
end
end
end
end
end
2 changes: 1 addition & 1 deletion lib/schema_plus/functions/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

module SchemaPlus
module Functions
VERSION = "0.2.0"
VERSION = "1.0.0"
end
end
5 changes: 4 additions & 1 deletion schema_dev.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
ruby:
- 2.3.1
- 2.5
- 2.7
- 3.0
activerecord:
- 5.2
- 6.0
db:
- postgresql
dbversions:
Expand Down
12 changes: 6 additions & 6 deletions schema_plus_functions.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ Gem::Specification.new do |gem|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
gem.require_paths = ["lib"]

gem.add_dependency "activerecord", ">= 5.2", "< 5.3"
gem.add_dependency "schema_plus_core"
gem.required_ruby_version = ">= 2.5.0"

gem.add_dependency "activerecord", ">= 5.2", "< 6.1"
gem.add_dependency "schema_plus_core", "~> 3.0"

gem.add_development_dependency "bundler"
gem.add_development_dependency "rake", "~> 10.0"
gem.add_development_dependency "rake", "~> 13.0"
gem.add_development_dependency "rspec", "~> 3.0"
gem.add_development_dependency "schema_dev", "~> 3.12"
gem.add_development_dependency "simplecov"
gem.add_development_dependency "simplecov-gem-profile"
gem.add_development_dependency "schema_dev", "~> 4.1"
end
3 changes: 1 addition & 2 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# frozen_string_literal: true

require 'simplecov'
require 'simplecov-gem-profile'
SimpleCov.start "gem"
SimpleCov.start

$LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
Expand Down