prodder 1.7.7 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +55 -0
- data/config/database.yml.github-actions +8 -0
- data/lib/prodder/prodder.rake +9 -10
- data/lib/prodder/version.rb +1 -1
- metadata +19 -5
- data/.travis.yml +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e8921f51e1bb936a99eaccc98d04bcd34ff72acbe20cb5547f6e680f8e4106a
|
4
|
+
data.tar.gz: 0e47795334cfcd4944d877dd5c24ab72e4fa5b082d66400b5c0a318228ba0f5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12817961230a0fd95776ff3bdf4a95b62fb8b961bbf2db9d93413f8cf93c32a9f11c4e036ffd89b0e4e5c0807ef40cf5d342706b0cd7a1f214c1f9c3a840547b
|
7
|
+
data.tar.gz: 34c918bd1587a1c055ffd76866028a5cd7e7c371c42cec0381e01294af4f308b5478d59f2406a8d5dea73755e5c16cb0d33b2b206e8a450448cceca6b5a2b748
|
@@ -0,0 +1,55 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- main
|
8
|
+
pull_request:
|
9
|
+
|
10
|
+
permissions:
|
11
|
+
contents: read
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
test:
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
strategy:
|
17
|
+
matrix:
|
18
|
+
ruby-version: [2.6, 2.7, 3.0]
|
19
|
+
services:
|
20
|
+
postgres:
|
21
|
+
image: postgres:12.1-alpine
|
22
|
+
ports:
|
23
|
+
- 5432:5432
|
24
|
+
env:
|
25
|
+
POSTGRES_USER: postgres
|
26
|
+
POSTGRES_PASSWORD: postgres
|
27
|
+
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
28
|
+
steps:
|
29
|
+
- name: Checkout Project
|
30
|
+
uses: actions/checkout@v3
|
31
|
+
|
32
|
+
- name: Set up Ruby
|
33
|
+
uses: ruby/setup-ruby@v1
|
34
|
+
with:
|
35
|
+
ruby-version: ${{ matrix.ruby-version }}
|
36
|
+
bundler-cache: true
|
37
|
+
|
38
|
+
- name: Install Library Dependencies
|
39
|
+
run: sudo apt-get install libpq-dev
|
40
|
+
|
41
|
+
- name: Setup Database
|
42
|
+
run: |
|
43
|
+
cp config/database.yml.github-actions config/database.yml
|
44
|
+
env:
|
45
|
+
RAILS_ENV: test
|
46
|
+
POSTGRES_USER: postgres
|
47
|
+
POSTGRES_PASSWORD: postgres
|
48
|
+
|
49
|
+
- name: Test with RSpec
|
50
|
+
env:
|
51
|
+
RAILS_ENV: "test"
|
52
|
+
POSTGRES_USER: postgres
|
53
|
+
POSTGRES_PASSWORD: postgres
|
54
|
+
run: |
|
55
|
+
bundle exec rspec
|
data/lib/prodder/prodder.rake
CHANGED
@@ -169,7 +169,7 @@ namespace :db do
|
|
169
169
|
end
|
170
170
|
as("superuser", in: environments) do
|
171
171
|
ActiveRecord::Tasks::DatabaseTasks.create_current
|
172
|
-
|
172
|
+
Rails.configuration.database_configuration.each do |env, config|
|
173
173
|
if environments.include?(env) && config["migration_user"] && config['database']
|
174
174
|
set_psql_env config
|
175
175
|
`psql --no-psqlrc --command "ALTER DATABASE #{config['database']} OWNER TO #{config['migration_user']}" #{Shellwords.escape(config['database'])}`
|
@@ -182,7 +182,7 @@ namespace :db do
|
|
182
182
|
task :all => dependencies do
|
183
183
|
as("superuser") do
|
184
184
|
ActiveRecord::Tasks::DatabaseTasks.create_all
|
185
|
-
|
185
|
+
Rails.configuration.database_configuration.each do |env, config|
|
186
186
|
if config["migration_user"] && config['database']
|
187
187
|
set_psql_env config
|
188
188
|
`psql --no-psqlrc --command "ALTER DATABASE #{config['database']} OWNER TO #{config['migration_user']}" #{Shellwords.escape(config['database'])}`
|
@@ -204,7 +204,7 @@ namespace :db do
|
|
204
204
|
desc "Load db/structure.sql into the current environment's database"
|
205
205
|
task :load => dependencies do
|
206
206
|
as("superuser", in: ENV['RAILS_ENV'] || Rails.env) do
|
207
|
-
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env]
|
207
|
+
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env].with_indifferent_access
|
208
208
|
set_psql_env config
|
209
209
|
puts "Loading db/structure.sql into database '#{config['database']}'"
|
210
210
|
`psql --no-psqlrc -f db/structure.sql #{Shellwords.escape(config['database'])}`
|
@@ -217,7 +217,7 @@ namespace :db do
|
|
217
217
|
task :seed => dependencies do
|
218
218
|
if File.exist?('db/seeds.sql')
|
219
219
|
as("superuser", in: ENV['RAILS_ENV'] || Rails.env) do
|
220
|
-
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env]
|
220
|
+
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env].with_indifferent_access
|
221
221
|
set_psql_env config
|
222
222
|
puts "Loading db/seeds.sql into database '#{config['database']}'"
|
223
223
|
`psql --no-psqlrc -f db/seeds.sql #{Shellwords.escape(config['database'])}`
|
@@ -232,7 +232,7 @@ namespace :db do
|
|
232
232
|
task :quality_check => dependencies do
|
233
233
|
if File.exist?('db/quality_checks.sql')
|
234
234
|
as("superuser", in: ENV['RAILS_ENV'] || Rails.env) do
|
235
|
-
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env]
|
235
|
+
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env].with_indifferent_access
|
236
236
|
set_psql_env config
|
237
237
|
puts "Loading db/quality_checks.sql into database '#{config['database']}'"
|
238
238
|
`psql --no-psqlrc -f db/quality_checks.sql #{Shellwords.escape(config['database'])}`
|
@@ -247,7 +247,7 @@ namespace :db do
|
|
247
247
|
task :permission => dependencies do
|
248
248
|
if File.exist?('db/permissions.sql')
|
249
249
|
as("superuser", in: ENV['RAILS_ENV'] || Rails.env) do
|
250
|
-
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env]
|
250
|
+
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env].with_indifferent_access
|
251
251
|
set_psql_env config
|
252
252
|
puts "Loading db/permissions.sql into database '#{config['database']}'"
|
253
253
|
result = ActiveRecord::Base.connection.execute(<<-SQL).first
|
@@ -268,7 +268,7 @@ namespace :db do
|
|
268
268
|
task :settings => dependencies do
|
269
269
|
if File.exist?('db/settings.sql')
|
270
270
|
as("superuser", in: ENV['RAILS_ENV'] || Rails.env) do
|
271
|
-
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env]
|
271
|
+
config = ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env].with_indifferent_access
|
272
272
|
set_psql_env config
|
273
273
|
puts "Loading db/settings.sql into database '#{config['database']}'"
|
274
274
|
result = ActiveRecord::Base.connection.execute(<<-SQL).first
|
@@ -362,8 +362,7 @@ namespace :db do
|
|
362
362
|
|
363
363
|
def as(user, opts = {}, &block)
|
364
364
|
if File.exist?('db/permissions.sql')
|
365
|
-
|
366
|
-
config, config_was = ActiveRecord::Base.configurations.deep_dup.to_h, ActiveRecord::Base.configurations.deep_dup
|
365
|
+
config, config_was = Rails.configuration.database_configuration, ActiveRecord::Base.configurations.deep_dup
|
367
366
|
in_env = Array(opts[:in]) || config.keys
|
368
367
|
if config.all? { |env, config_hash| in_env.include?(env) ? config_hash[user] : true }
|
369
368
|
disconnect
|
@@ -394,5 +393,5 @@ end
|
|
394
393
|
|
395
394
|
# Yes, I really want migrations to run against the test DB.
|
396
395
|
Rake::Task['db:migrate'].actions.unshift(proc {
|
397
|
-
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env])
|
396
|
+
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[ENV['RAILS_ENV'] || Rails.env].with_indifferent_access)
|
398
397
|
})
|
data/lib/prodder/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prodder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyle Hargraves
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deject
|
@@ -32,13 +32,14 @@ executables:
|
|
32
32
|
extensions: []
|
33
33
|
extra_rdoc_files: []
|
34
34
|
files:
|
35
|
+
- ".github/workflows/ci.yml"
|
35
36
|
- ".gitignore"
|
36
|
-
- ".travis.yml"
|
37
37
|
- Gemfile
|
38
38
|
- LICENSE.txt
|
39
39
|
- README.md
|
40
40
|
- Rakefile
|
41
41
|
- bin/prodder
|
42
|
+
- config/database.yml.github-actions
|
42
43
|
- features/commit.feature
|
43
44
|
- features/dump.feature
|
44
45
|
- features/init.feature
|
@@ -81,9 +82,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
82
|
- !ruby/object:Gem::Version
|
82
83
|
version: '0'
|
83
84
|
requirements: []
|
84
|
-
rubygems_version: 3.0.
|
85
|
+
rubygems_version: 3.0.3.1
|
85
86
|
signing_key:
|
86
87
|
specification_version: 4
|
87
88
|
summary: Maintain your Rails apps' structure, seed and quality_checks files using
|
88
89
|
production dumps
|
89
|
-
test_files:
|
90
|
+
test_files:
|
91
|
+
- features/commit.feature
|
92
|
+
- features/dump.feature
|
93
|
+
- features/init.feature
|
94
|
+
- features/lint.feature
|
95
|
+
- features/prodder.feature
|
96
|
+
- features/push.feature
|
97
|
+
- features/step_definitions/git_steps.rb
|
98
|
+
- features/step_definitions/prodder_steps.rb
|
99
|
+
- features/support/blog.git.tgz
|
100
|
+
- features/support/env.rb
|
101
|
+
- features/support/prodder__blog_prod.sql
|
102
|
+
- spec/config_spec.rb
|
103
|
+
- spec/spec_helper.rb
|
data/.travis.yml
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
|
4
|
-
rvm:
|
5
|
-
- 2.5.8
|
6
|
-
- 2.7.2
|
7
|
-
|
8
|
-
env:
|
9
|
-
matrix:
|
10
|
-
- PG_VERSION=11
|
11
|
-
|
12
|
-
before_install:
|
13
|
-
- git config --global user.name "Prodder In Travis-CI"
|
14
|
-
- git config --global user.email "prodder@example.com"
|
15
|
-
# install postgres
|
16
|
-
- sudo apt-get install postgresql-client-$PG_VERSION postgresql-server-dev-$PG_VERSION
|
17
|
-
# setup pg_dump
|
18
|
-
- ls -al /usr/lib/postgresql/
|
19
|
-
- sudo ln -sfn /usr/lib/postgresql/$PG_VERSION/bin/pg_dump /usr/bin/pg_dump
|
20
|
-
# start up the specific version of PG
|
21
|
-
- sudo -E sh -c 'service postgresql stop'
|
22
|
-
- sleep 5s
|
23
|
-
- sudo -E sh -c 'service postgresql start $PG_VERSION'
|
24
|
-
- psql -U postgres -d postgres -c 'select setting from pg_settings where name = $m$server_version$m$;'
|
25
|
-
|
26
|
-
script:
|
27
|
-
- psql --version
|
28
|
-
- pg_lsclusters
|
29
|
-
- psql -U postgres -d postgres -c 'select 1;'
|
30
|
-
- ls -al `which pg_dump`
|
31
|
-
- bundle exec rake spec
|
32
|
-
- bundle exec rake cucumber
|
33
|
-
|
34
|
-
deploy:
|
35
|
-
provider: rubygems
|
36
|
-
api_key:
|
37
|
-
secure: "UhUkPFhEuI1dLPa4skTUdOBcGY2SEkRP3N9jLDQad04DflV+GutcjrfN1iQxWk59gVt3zqird5FS8SdwCFuOn8DAU9ACtg73xiPPWRRTdzma4Qw+4thuOHcdwPBz3762YFTRyH7IbRTAlxaD6qPz6US3BnYAkJU7C8c30rHLX6cZutjLV4FsvWonkzxcjyEUViVEdBM0kzI+tdBnQovpcM67a9AfxxBZITJLIfIcah1qc/RANpLkUFJCwNyH9oARWsGIvpIKcQEJBhsl04tvbNRLpiMCk1e1RS1bjMdbbx/rVm3C7dvAjUznbr3ON9abgoe6QDDYr6kXPJbylmxFUzA7ftBWjz2nNruRncsohx08LaM4ADRJWKB3XbP5BXkwUgE672Fi20+Z78LwWfjrr3iRVm7u9Mt9pZHG6Ih8Jy64Uq3647kdVZu9APPfn1NZETFG7vLAMZUtPXv7HBkujlq23XdYXax1XYYbYsM0LOlnG6ol2y6OrBrxWIqC+E8UmLXf/+/MS4j3v2RAe7jXh6fFlw+5MjLr3HXqZ12CrAChp22NRPp1OY4Hac4zzRwGeVOgewknpOK7qQfVFFaQoQksU6VaenSx+TxcYOZYuQdrQjfbO6c+Q/vvZ1RoPOEwH0AelkrW2eGqQTNVWIbH5vvfhys68SA8ov8gNnIzMtU="
|
38
|
-
gem: prodder
|
39
|
-
on:
|
40
|
-
tags: true
|
41
|
-
repo: enova/prodder
|