track_ballast 0.1.0.beta5 → 0.1.0.beta6
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/.circleci/config.yml +235 -0
- data/CHANGELOG.md +4 -3
- data/Gemfile.lock +5 -2
- data/README.md +2 -0
- data/lib/track_ballast/version.rb +1 -1
- data/track_ballast.gemspec +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4eb1bf8026f035355c976bd1d356017c022dfd12ae0c9db32967d17c84ae19ac
|
4
|
+
data.tar.gz: 451487f526462eb61d15d9bd036a6070825b7c733d36b77f6957a40f086e0fa0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae6549bbe50faebd1c394f107e43de187029459d7f8afefd67d774a4c190d5ebaa3b5b0d7b8479f836ec7400462674c939927361f7830161a3e60f2aaba0bf89
|
7
|
+
data.tar.gz: 5b187742d7f330fb0405752919270fb20f9067ca62212638260e15f80fb5b146e839c3c41567b26e9d9887d3d03fc42c23f71920a3f1a294335389969b96d50e
|
@@ -0,0 +1,235 @@
|
|
1
|
+
---
|
2
|
+
version: '2.1'
|
3
|
+
|
4
|
+
orbs:
|
5
|
+
ci-utils: doximity/ci-utils@2
|
6
|
+
|
7
|
+
executors:
|
8
|
+
base:
|
9
|
+
resource_class: small
|
10
|
+
docker:
|
11
|
+
- image: cimg/base:current-22.04
|
12
|
+
ruby:
|
13
|
+
parameters:
|
14
|
+
ruby-version:
|
15
|
+
type: string
|
16
|
+
default: 3.2.2
|
17
|
+
resource_class: small
|
18
|
+
docker:
|
19
|
+
- image: cimg/ruby:<< parameters.ruby-version >>
|
20
|
+
|
21
|
+
commands:
|
22
|
+
bundle_install:
|
23
|
+
steps:
|
24
|
+
- run:
|
25
|
+
name: Configure Bundler
|
26
|
+
command: |
|
27
|
+
bundle config set --local path 'vendor/bundle'
|
28
|
+
bundle config set --local jobs 4
|
29
|
+
bundle config set --local retry 3
|
30
|
+
- run:
|
31
|
+
name: Install Ruby Dependencies
|
32
|
+
command: |
|
33
|
+
if [ -d "vendor/cache" ]; then
|
34
|
+
bundle install --local --verbose
|
35
|
+
else
|
36
|
+
bundle install --verbose
|
37
|
+
fi
|
38
|
+
- run:
|
39
|
+
name: Did you run bundle install after changing Gemfile?
|
40
|
+
command: git diff --exit-code Gemfile.lock
|
41
|
+
|
42
|
+
install_gem_version:
|
43
|
+
parameters:
|
44
|
+
gem-version:
|
45
|
+
description: 'The name and version number (e.g. rails-7.0.3) you want installed, specified to the patch version.'
|
46
|
+
type: string
|
47
|
+
default: ''
|
48
|
+
steps:
|
49
|
+
- when:
|
50
|
+
condition: "<< parameters.gem-version >>"
|
51
|
+
steps:
|
52
|
+
- run:
|
53
|
+
name: Unfreeze Bundle
|
54
|
+
command: bundle config set --local frozen 'false'
|
55
|
+
- run:
|
56
|
+
name: Show prior gem version
|
57
|
+
command: |
|
58
|
+
read -r target_gemname target_version \<<< $( echo "<< parameters.gem-version >>" | sed 's/\(.*\)-\([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)*\)/\1 \2/g')
|
59
|
+
version=$(bundle list | sed -n "s/[[:space:]]*\* $target_gemname (\(.*\))/\1/p")
|
60
|
+
if [[ -z "$version" ]]; then
|
61
|
+
echo "No prior version of ${target_gemname} found."
|
62
|
+
else
|
63
|
+
echo $version;
|
64
|
+
fi
|
65
|
+
- run:
|
66
|
+
name: Set gem version to << parameters.gem-version >>
|
67
|
+
command: |
|
68
|
+
cd
|
69
|
+
mkdir -p ~/project/vendor/cache
|
70
|
+
read -r target_gemname target_version \<<< $( echo "<< parameters.gem-version >>" | sed 's/\(.*\)-\([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)*\)/\1 \2/g')
|
71
|
+
gem install $target_gemname -i /tmp/repo --no-document -v $target_version
|
72
|
+
|
73
|
+
echo 'Delete any gems matching the newly installed ones from the existing cache'
|
74
|
+
for line in $(ls /tmp/repo/cache | grep gem); do
|
75
|
+
read -r gemname version \<<< $( echo $line | sed 's/\(.*\)-\([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)*\)[^0-9\.]*.*.gem/\1 \2/g')
|
76
|
+
if [ $gemname = 'bundler' ]; # skip bundler
|
77
|
+
then continue
|
78
|
+
fi
|
79
|
+
rm -f ~/project/vendor/cache/$gemname*.gem
|
80
|
+
done;
|
81
|
+
|
82
|
+
echo 'The following gems will be copied into the project: '
|
83
|
+
ls -l /tmp/repo/cache
|
84
|
+
cp /tmp/repo/cache/*.gem ~/project/vendor/cache
|
85
|
+
|
86
|
+
echo 'Showing gems in the project cache: ls -al ~/project/vendor/cache'
|
87
|
+
ls -al ~/project/vendor/cache
|
88
|
+
|
89
|
+
cd ~/project
|
90
|
+
echo 'Removing Gemfile.lock'
|
91
|
+
rm -f ./Gemfile.lock
|
92
|
+
|
93
|
+
echo 'Fancy replacement. Set all gems in the gemspec to what we currently have in the vendor/cache.'
|
94
|
+
for line in $(ls vendor/cache | grep gem); do
|
95
|
+
# we don't care about the .gem, get rid of it
|
96
|
+
trimmed_line=${line%%.gem}
|
97
|
+
# version to include anything after the gem name so we can pick up prerelease versions
|
98
|
+
read -r gemname version \<<< $( echo $trimmed_line | sed 's/\(.*\)-\([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)*[^0-9\.]*.*\)/\1 \2/g' )
|
99
|
+
|
100
|
+
# leave bundler alone
|
101
|
+
if [ $gemname = 'bundler' ];
|
102
|
+
then continue
|
103
|
+
fi
|
104
|
+
|
105
|
+
# strip out platform info from version, we just want the number plus any prerelease identifiers
|
106
|
+
version=$(echo $version | cut -d "-" -f 1)
|
107
|
+
|
108
|
+
sed -i "s/\(.*_dependency \"$gemname\"\)".*"/\1, \"~> $version\"/g" *.gemspec
|
109
|
+
|
110
|
+
if [[ "$gemname" = "$target_gemname" ]]; then
|
111
|
+
if [[ -z "$(sed -n "s/\(.*_dependency \"$gemname\"\).*\"/\1/p" *.gemspec)" ]];
|
112
|
+
then
|
113
|
+
echo 'No pre-existing version, adding version';
|
114
|
+
replacement="spec\\.add_development_dependency \"$gemname\", \"~> $version\""
|
115
|
+
sed -e "0,/add.*dependency/{/add.*dependency/a\ $replacement" -e "}" -i -- *.gemspec
|
116
|
+
else
|
117
|
+
echo 'nothing to do';
|
118
|
+
fi;
|
119
|
+
fi;
|
120
|
+
done;
|
121
|
+
|
122
|
+
echo 'cat *.gemspec'
|
123
|
+
cat *.gemspec
|
124
|
+
|
125
|
+
echo 'bundle install --local --no-cache'
|
126
|
+
bundle install --local --no-cache
|
127
|
+
- run:
|
128
|
+
name: Gem version after upgrade
|
129
|
+
command: |
|
130
|
+
read -r target_gemname target_version \<<< $( echo "<< parameters.gem-version >>" | sed 's/\(.*\)-\([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)*\)/\1 \2/g')
|
131
|
+
version=$(bundle list | sed -n "s/[[:space:]]*\* $target_gemname (\(.*\))/\1/p")
|
132
|
+
if [[ -z "$version" ]]; then
|
133
|
+
echo "${target_gemname} was somehow not installed."
|
134
|
+
exit 1
|
135
|
+
else
|
136
|
+
echo $version;
|
137
|
+
fi
|
138
|
+
|
139
|
+
run_rspec_tests:
|
140
|
+
parameters:
|
141
|
+
test_pattern:
|
142
|
+
default: "{$(ls -d spec/**/ | tr '\\n' ',' | sed -E 's/(spec\\/|factories|support|\\/|,$)//g' | sed 's/,\\{2,\\}/,/g')}"
|
143
|
+
type: string
|
144
|
+
test_files:
|
145
|
+
default: $(circleci tests glob "spec/$TEST_PATTERN/**/*_spec.rb" | circleci tests split --split-by=timings)
|
146
|
+
type: string
|
147
|
+
profile-specs:
|
148
|
+
type: integer
|
149
|
+
default: 0
|
150
|
+
steps:
|
151
|
+
- run:
|
152
|
+
name: Run RSpec Tests
|
153
|
+
command: |
|
154
|
+
shopt -s globstar
|
155
|
+
OUT_PATH=tmp/test-results
|
156
|
+
mkdir -p $OUT_PATH
|
157
|
+
TEST_PATTERN=<< parameters.test_pattern >>
|
158
|
+
TEST_FILES=<< parameters.test_files >>
|
159
|
+
PROFILE_COUNT=<< parameters.profile-specs >>
|
160
|
+
RSPEC_COMMAND="bundle exec rspec --profile $PROFILE_COUNT --format RspecJunitFormatter --out $OUT_PATH/results.xml --format progress --order defined $TEST_FILES"
|
161
|
+
printf "Executing specs with the following command:\n\n"
|
162
|
+
echo ${RSPEC_COMMAND}
|
163
|
+
printf "\n"
|
164
|
+
eval $RSPEC_COMMAND
|
165
|
+
|
166
|
+
jobs:
|
167
|
+
run_tests_ruby:
|
168
|
+
parameters:
|
169
|
+
executor:
|
170
|
+
type: string
|
171
|
+
default: ruby
|
172
|
+
parallelism:
|
173
|
+
type: integer
|
174
|
+
default: 1
|
175
|
+
resource_class:
|
176
|
+
type: string
|
177
|
+
default: small
|
178
|
+
gem-version:
|
179
|
+
description: 'The name and version number (e.g. rails-7.0.3) you want installed,specified to the patch version.'
|
180
|
+
type: string
|
181
|
+
default: ''
|
182
|
+
ruby-version:
|
183
|
+
type: string
|
184
|
+
default: '3.1'
|
185
|
+
pre-actions:
|
186
|
+
description: Steps to perform any necessary setup after dependencies are installed.
|
187
|
+
type: steps
|
188
|
+
default: []
|
189
|
+
actions:
|
190
|
+
description: The actions that fulfill the primary purpose of the CI job (tests/checks/etc.)
|
191
|
+
type: steps
|
192
|
+
default: []
|
193
|
+
post-actions:
|
194
|
+
description: Any artifacting/reporting/cleanup that must occur after the main actions.
|
195
|
+
type: steps
|
196
|
+
default: []
|
197
|
+
executor:
|
198
|
+
name: "<< parameters.executor >>"
|
199
|
+
ruby-version: "<< parameters.ruby-version >>"
|
200
|
+
resource_class: "<< parameters.resource_class >>"
|
201
|
+
parallelism: "<< parameters.parallelism >>"
|
202
|
+
steps:
|
203
|
+
- ci-utils/ci_checkout
|
204
|
+
- bundle_install
|
205
|
+
- install_gem_version:
|
206
|
+
gem-version: "<< parameters.gem-version >>"
|
207
|
+
- steps: "<< parameters.pre-actions >>"
|
208
|
+
- steps: "<< parameters.actions >>"
|
209
|
+
- steps: "<< parameters.post-actions >>"
|
210
|
+
- ci-utils/quietly_store_artifacts
|
211
|
+
|
212
|
+
workflows:
|
213
|
+
main:
|
214
|
+
jobs:
|
215
|
+
- run_tests_ruby:
|
216
|
+
name: ruby-<< matrix.ruby-version >>-<< matrix.gem-version>>
|
217
|
+
executor: ruby
|
218
|
+
parallelism: 1
|
219
|
+
actions:
|
220
|
+
- run_rspec_tests:
|
221
|
+
test_files: $(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
|
222
|
+
post-actions:
|
223
|
+
- store_test_results:
|
224
|
+
path: tmp/test-results
|
225
|
+
matrix:
|
226
|
+
parameters:
|
227
|
+
ruby-version:
|
228
|
+
- '3.0'
|
229
|
+
- '3.1'
|
230
|
+
- '3.2'
|
231
|
+
- '3.3'
|
232
|
+
gem-version:
|
233
|
+
- rails-6.1.7
|
234
|
+
- rails-7.0.8
|
235
|
+
- rails-7.1.3
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
track_ballast (0.1.0.
|
4
|
+
track_ballast (0.1.0.beta6)
|
5
5
|
activerecord (>= 6.1, < 8.0)
|
6
6
|
activesupport (>= 6.1, < 8.0)
|
7
7
|
|
@@ -114,7 +114,8 @@ GEM
|
|
114
114
|
ruby-progressbar (1.13.0)
|
115
115
|
ruby2_keywords (0.0.5)
|
116
116
|
shellany (0.0.1)
|
117
|
-
sqlite3 (1.
|
117
|
+
sqlite3 (1.7.2-arm64-darwin)
|
118
|
+
sqlite3 (1.7.2-x86_64-linux)
|
118
119
|
standard (1.33.0)
|
119
120
|
language_server-protocol (~> 3.17.0.2)
|
120
121
|
lint_roller (~> 1.0)
|
@@ -135,7 +136,9 @@ GEM
|
|
135
136
|
yard (0.9.34)
|
136
137
|
|
137
138
|
PLATFORMS
|
139
|
+
arm64-darwin-21
|
138
140
|
arm64-darwin-22
|
141
|
+
x86_64-linux
|
139
142
|
|
140
143
|
DEPENDENCIES
|
141
144
|
bundler
|
data/README.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
[](https://dl.circleci.com/status-badge/redirect/gh/doximity/track_ballast/tree/master)
|
2
|
+
|
1
3
|
# TrackBallast
|
2
4
|
|
3
5
|
TrackBallast contains small supporting units of Ruby to use with Rails. It is named after [the small supporting stones that you see alongside railway tracks](https://www.scienceabc.com/pure-sciences/why-are-there-stones-train-ballast-alongside-railway-tracks.html).
|
data/track_ballast.gemspec
CHANGED
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.summary = "Small supporting units of Ruby to use with Rails"
|
14
14
|
spec.homepage = "https://github.com/doximity/track_ballast"
|
15
15
|
spec.license = "APACHE-2.0"
|
16
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 3.0.0")
|
16
17
|
|
17
18
|
spec.metadata["homepage_uri"] = spec.homepage
|
18
19
|
spec.metadata["source_code_uri"] = spec.homepage
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: track_ballast
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.beta6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Oakes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01
|
11
|
+
date: 2024-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -197,6 +197,7 @@ executables: []
|
|
197
197
|
extensions: []
|
198
198
|
extra_rdoc_files: []
|
199
199
|
files:
|
200
|
+
- ".circleci/config.yml"
|
200
201
|
- ".gitignore"
|
201
202
|
- ".rspec"
|
202
203
|
- ".ruby-version"
|
@@ -232,7 +233,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
232
233
|
requirements:
|
233
234
|
- - ">="
|
234
235
|
- !ruby/object:Gem::Version
|
235
|
-
version:
|
236
|
+
version: 3.0.0
|
236
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
237
238
|
requirements:
|
238
239
|
- - ">"
|