capistrano-ops 1.0.10 → 1.0.11
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/release.yml +25 -0
- data/.rubocop.yml +78 -18
- data/.ruby-version +1 -1
- data/CHANGELOG.md +311 -0
- data/Rakefile +17 -0
- data/capistrano-ops.gemspec +8 -7
- data/lib/capistrano/ops/version.rb +1 -1
- data/scripts/bump_version.rb +172 -0
- metadata +46 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b8c94fd6b958f219478ce26ed0631cd216f3b145701d55cd4192819ab9afecc5
|
|
4
|
+
data.tar.gz: fc29a70471fdd88d40ab72f17a3b5f0fd4aac4e71d93215143bc971778d4c070
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c0d8bbebfdbe41493e8844f6dbca9561fa76e321d1c9024d76880d43aa1a001d941f556631df188c29958f28467f4deafd09bd999fb5c420be328e324adc1265
|
|
7
|
+
data.tar.gz: a8dbc8d0b748e510fa29ca51f56a6764b5daa0313503e011fd8e451e813105c83a2e844825b976521857f6378f7208d7102c4f263a2d5672030c73a554118e13
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: write
|
|
9
|
+
id-token: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
publish:
|
|
13
|
+
name: Push gem to RubyGems.org
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Set up Ruby
|
|
20
|
+
uses: ruby/setup-ruby@v1
|
|
21
|
+
with:
|
|
22
|
+
ruby-version: '3.3'
|
|
23
|
+
bundler-cache: true
|
|
24
|
+
|
|
25
|
+
- uses: rubygems/release-gem@v1
|
data/.rubocop.yml
CHANGED
|
@@ -1,28 +1,88 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
- rubocop-rails
|
|
1
|
+
# RuboCop configuration for ms-graph-mailer gem
|
|
2
|
+
|
|
4
3
|
AllCops:
|
|
5
|
-
NewCops:
|
|
6
|
-
TargetRubyVersion:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
NewCops: enable
|
|
5
|
+
TargetRubyVersion: 3.1
|
|
6
|
+
SuggestExtensions: false
|
|
7
|
+
Exclude:
|
|
8
|
+
- 'vendor/**/*'
|
|
9
|
+
- 'tmp/**/*'
|
|
10
|
+
- 'bin/**/*'
|
|
11
|
+
|
|
12
|
+
# Metrics
|
|
13
|
+
|
|
13
14
|
Metrics/BlockLength:
|
|
14
15
|
Max: 50
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
Exclude:
|
|
17
|
+
- 'spec/**/*'
|
|
18
|
+
- '*.gemspec'
|
|
19
|
+
|
|
20
|
+
Metrics/ClassLength:
|
|
21
|
+
Max: 150
|
|
22
|
+
|
|
23
|
+
Metrics/MethodLength:
|
|
24
|
+
Max: 40
|
|
25
|
+
Exclude:
|
|
26
|
+
- 'spec/**/*'
|
|
27
|
+
|
|
17
28
|
Metrics/AbcSize:
|
|
18
|
-
Max:
|
|
29
|
+
Max: 65
|
|
30
|
+
Exclude:
|
|
31
|
+
- 'spec/**/*'
|
|
32
|
+
|
|
19
33
|
Metrics/CyclomaticComplexity:
|
|
20
|
-
Max:
|
|
34
|
+
Max: 10
|
|
35
|
+
|
|
21
36
|
Metrics/PerceivedComplexity:
|
|
22
|
-
Max:
|
|
37
|
+
Max: 10
|
|
38
|
+
|
|
39
|
+
# Style
|
|
40
|
+
|
|
23
41
|
Style/Documentation:
|
|
24
42
|
Enabled: false
|
|
25
|
-
|
|
43
|
+
|
|
44
|
+
Style/StringLiterals:
|
|
45
|
+
EnforcedStyle: single_quotes
|
|
46
|
+
|
|
47
|
+
Style/StringLiteralsInInterpolation:
|
|
48
|
+
EnforcedStyle: single_quotes
|
|
49
|
+
|
|
50
|
+
Style/FrozenStringLiteralComment:
|
|
51
|
+
Enabled: true
|
|
52
|
+
EnforcedStyle: always
|
|
53
|
+
|
|
54
|
+
Style/TrailingCommaInArrayLiteral:
|
|
55
|
+
EnforcedStyleForMultiline: no_comma
|
|
56
|
+
|
|
57
|
+
Style/TrailingCommaInHashLiteral:
|
|
58
|
+
EnforcedStyleForMultiline: no_comma
|
|
59
|
+
|
|
60
|
+
Style/TrailingCommaInArguments:
|
|
61
|
+
EnforcedStyleForMultiline: no_comma
|
|
62
|
+
|
|
63
|
+
# Layout
|
|
64
|
+
|
|
65
|
+
Layout/LineLength:
|
|
66
|
+
Max: 150
|
|
67
|
+
AllowedPatterns:
|
|
68
|
+
- '\s+# '
|
|
69
|
+
|
|
70
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
|
71
|
+
Enabled: true
|
|
72
|
+
|
|
73
|
+
Layout/SpaceAroundMethodCallOperator:
|
|
74
|
+
Enabled: true
|
|
75
|
+
|
|
76
|
+
# Lint
|
|
77
|
+
|
|
78
|
+
Gemspec/DevelopmentDependencies:
|
|
26
79
|
Enabled: false
|
|
27
|
-
|
|
80
|
+
|
|
81
|
+
Gemspec/RequireMFA:
|
|
28
82
|
Enabled: false
|
|
83
|
+
|
|
84
|
+
Lint/RaiseException:
|
|
85
|
+
Enabled: true
|
|
86
|
+
|
|
87
|
+
Lint/StructNewOverride:
|
|
88
|
+
Enabled: true
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.1.4
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [1.0.11] - 2025-12-22
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add GitHub Actions workflow for automated gem releases to RubyGems.org
|
|
15
|
+
- Add comprehensive CHANGELOG.md with complete version history
|
|
16
|
+
- Add version bump script (bump_version.rb) for automated version management
|
|
17
|
+
- Add RuboCop configuration for code style enforcement
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Update aws-sdk-s3 dependency to ~> 1.208
|
|
22
|
+
- Update Ruby version requirements to >= 3.1.4, < 3.4.0
|
|
23
|
+
|
|
24
|
+
## [v1.0.10] - 2025-03-04
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Update required Ruby version to < 3.4.0
|
|
29
|
+
|
|
30
|
+
## [v1.0.9] - 2024-12-20
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Fix missing variables in S3 multipart upload
|
|
35
|
+
- Update chunk size calculation for S3 uploads
|
|
36
|
+
|
|
37
|
+
## [v1.0.8] - 2024-12-16
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- Add retry logic to S3 uploads for improved reliability
|
|
42
|
+
|
|
43
|
+
## [v1.0.7] - 2024-12-05
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- Minor version bump with typo fixes
|
|
48
|
+
|
|
49
|
+
## [v1.0.6] - 2024-12-04
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- Fix inheritable_copy error
|
|
54
|
+
|
|
55
|
+
## [v1.0.5] - 2024-12-04
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- Update S3 upload to allow streaming directly into tar.gz file
|
|
60
|
+
|
|
61
|
+
## [v1.0.4] - 2024-08-14
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
|
|
65
|
+
- Update configs helper to retain other stages locally when working with figaro_yml
|
|
66
|
+
|
|
67
|
+
## [v1.0.3] - 2024-07-15
|
|
68
|
+
|
|
69
|
+
### Added
|
|
70
|
+
|
|
71
|
+
- Enhance gem presence check with regex for better Gemfile validation
|
|
72
|
+
|
|
73
|
+
## [v1.0.2] - 2024-07-15
|
|
74
|
+
|
|
75
|
+
### Fixed
|
|
76
|
+
|
|
77
|
+
- Fix wkhtmltopdf broken functionality
|
|
78
|
+
|
|
79
|
+
## [v1.0.1] - 2024-07-15
|
|
80
|
+
|
|
81
|
+
### Fixed
|
|
82
|
+
|
|
83
|
+
- Fix wkhtmltopdf broken functionality (additional fixes)
|
|
84
|
+
|
|
85
|
+
## [v1.0.0] - 2024-07-11
|
|
86
|
+
|
|
87
|
+
### Changed
|
|
88
|
+
|
|
89
|
+
- Major version release - Prepare for v1 release
|
|
90
|
+
- Stable API and feature set
|
|
91
|
+
|
|
92
|
+
## [v0.2.14] - 2024-06-29
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
|
|
96
|
+
- Cleanup figaro_yml tasks
|
|
97
|
+
|
|
98
|
+
## [v0.2.13] - 2024-06-12
|
|
99
|
+
|
|
100
|
+
### Added
|
|
101
|
+
|
|
102
|
+
- Add wkhtmltopdf support
|
|
103
|
+
- Add loader file for wkhtmltopdf Capistrano task
|
|
104
|
+
- Add wkhtmltopdf setup and permission checks for deployment tasks
|
|
105
|
+
|
|
106
|
+
## [v0.2.12] - 2024-06-10
|
|
107
|
+
|
|
108
|
+
### Added
|
|
109
|
+
|
|
110
|
+
- Implement comprehensive logrotate functionality
|
|
111
|
+
|
|
112
|
+
## [v0.2.11] - 2024-04-16
|
|
113
|
+
|
|
114
|
+
### Fixed
|
|
115
|
+
|
|
116
|
+
- Fix logical issue with KEEP_LOCAL_STORAGE_BACKUPS environment variable
|
|
117
|
+
|
|
118
|
+
## [v0.2.10] - 2024-04-15
|
|
119
|
+
|
|
120
|
+
### Added
|
|
121
|
+
|
|
122
|
+
- Add ENV option to remove local storage backups if external backups enabled
|
|
123
|
+
- Update README with new configuration options
|
|
124
|
+
|
|
125
|
+
## [v0.2.9] - 2024-01-15
|
|
126
|
+
|
|
127
|
+
### Added
|
|
128
|
+
|
|
129
|
+
- Add backup thinning functionality to manage backup retention
|
|
130
|
+
|
|
131
|
+
## [v0.2.8] - 2023-09-07
|
|
132
|
+
|
|
133
|
+
### Changed
|
|
134
|
+
|
|
135
|
+
- Update required Ruby version
|
|
136
|
+
|
|
137
|
+
## [v0.2.7] - 2023-08-31
|
|
138
|
+
|
|
139
|
+
### Fixed
|
|
140
|
+
|
|
141
|
+
- Fix missing download functionality in backup
|
|
142
|
+
|
|
143
|
+
## [v0.2.6] - 2023-08-25
|
|
144
|
+
|
|
145
|
+
### Fixed
|
|
146
|
+
|
|
147
|
+
- Fix configuration error
|
|
148
|
+
|
|
149
|
+
## [v0.2.5] - 2023-08-14
|
|
150
|
+
|
|
151
|
+
### Changed
|
|
152
|
+
|
|
153
|
+
- Optimize backups functionality
|
|
154
|
+
|
|
155
|
+
## [v0.2.4] - 2023-08-13
|
|
156
|
+
|
|
157
|
+
### Changed
|
|
158
|
+
|
|
159
|
+
- Update README documentation
|
|
160
|
+
- Add Faraday for HTTP requests
|
|
161
|
+
- Add/split Capistrano backup tasks
|
|
162
|
+
- Add deprecation warnings
|
|
163
|
+
|
|
164
|
+
### Added
|
|
165
|
+
|
|
166
|
+
- Add .rubocop.yml for code style enforcement
|
|
167
|
+
|
|
168
|
+
## [v0.2.3] - 2023-07-24
|
|
169
|
+
|
|
170
|
+
### Added
|
|
171
|
+
|
|
172
|
+
- Add external backup provider support
|
|
173
|
+
- Add S3 object storage provider
|
|
174
|
+
- Update notification service
|
|
175
|
+
|
|
176
|
+
### Changed
|
|
177
|
+
|
|
178
|
+
- Major refactoring of backup system
|
|
179
|
+
|
|
180
|
+
### Known Issues
|
|
181
|
+
|
|
182
|
+
- Webhook notification service temporarily broken
|
|
183
|
+
|
|
184
|
+
## [v0.2.2] - 2023-07-08
|
|
185
|
+
|
|
186
|
+
### Changed
|
|
187
|
+
|
|
188
|
+
- Let bundler choose versions for better dependency management
|
|
189
|
+
- Only notify if update fails
|
|
190
|
+
|
|
191
|
+
### Fixed
|
|
192
|
+
|
|
193
|
+
- Resolve dependency conflicts for Rails 7 compatibility
|
|
194
|
+
|
|
195
|
+
## [v0.1.5] - 2023-03-15
|
|
196
|
+
|
|
197
|
+
### Fixed
|
|
198
|
+
|
|
199
|
+
- Set dependencies by ruby_version
|
|
200
|
+
|
|
201
|
+
## [v0.1.4] - 2023-03-13
|
|
202
|
+
|
|
203
|
+
### Changed
|
|
204
|
+
|
|
205
|
+
- Optimize database dumps
|
|
206
|
+
|
|
207
|
+
## [v0.1.3] - 2023-03-08
|
|
208
|
+
|
|
209
|
+
### Fixed
|
|
210
|
+
|
|
211
|
+
- Fix bad class declaration in Railtie
|
|
212
|
+
|
|
213
|
+
## [v0.1.2] - 2023-03-06
|
|
214
|
+
|
|
215
|
+
### Added
|
|
216
|
+
|
|
217
|
+
- Add functionality to get application.yml from server
|
|
218
|
+
|
|
219
|
+
### Changed
|
|
220
|
+
|
|
221
|
+
- Update README documentation
|
|
222
|
+
|
|
223
|
+
## [v0.1.1] - 2023-03-06
|
|
224
|
+
|
|
225
|
+
### Added
|
|
226
|
+
|
|
227
|
+
- Add get application yaml functionality
|
|
228
|
+
|
|
229
|
+
## [v0.1.0] - 2023-03-06
|
|
230
|
+
|
|
231
|
+
### Changed
|
|
232
|
+
|
|
233
|
+
- Rename gem to capistrano-ops
|
|
234
|
+
- Major version bump for initial stable release
|
|
235
|
+
|
|
236
|
+
## [v0.0.7] - 2022-12-14
|
|
237
|
+
|
|
238
|
+
### Added
|
|
239
|
+
|
|
240
|
+
- Add task to run rake task on server
|
|
241
|
+
|
|
242
|
+
### Changed
|
|
243
|
+
|
|
244
|
+
- Update readme and refactor backup.rake
|
|
245
|
+
|
|
246
|
+
## [v0.0.6] - 2022-12-08
|
|
247
|
+
|
|
248
|
+
### Fixed
|
|
249
|
+
|
|
250
|
+
- Fix figaro_yml compare functionality
|
|
251
|
+
|
|
252
|
+
## [v0.0.5] - 2022-12-07
|
|
253
|
+
|
|
254
|
+
### Fixed
|
|
255
|
+
|
|
256
|
+
- Fix issue with stdin handling
|
|
257
|
+
|
|
258
|
+
## [v0.0.4] - 2022-12-07
|
|
259
|
+
|
|
260
|
+
### Fixed
|
|
261
|
+
|
|
262
|
+
- Fix issue with stdin handling (additional fixes)
|
|
263
|
+
|
|
264
|
+
## [v0.0.3] - 2022-12-07
|
|
265
|
+
|
|
266
|
+
### Fixed
|
|
267
|
+
|
|
268
|
+
- Fix PGPASSWORD export
|
|
269
|
+
|
|
270
|
+
## Initial Release - 2022-12-07
|
|
271
|
+
|
|
272
|
+
### Added
|
|
273
|
+
|
|
274
|
+
- Initial commit with core functionality
|
|
275
|
+
- Database backup capabilities
|
|
276
|
+
- Figaro YAML management
|
|
277
|
+
- Basic Capistrano integration
|
|
278
|
+
|
|
279
|
+
[Unreleased]: https://github.com/zauberware/capistrano-ops/compare/v1.0.11...HEAD
|
|
280
|
+
[1.0.11]: https://github.com/zauberware/capistrano-ops/releases/tag/v1.0.11
|
|
281
|
+
[v1.0.10]: https://github.com/zauberware/capistrano-ops/compare/v1.0.9...v1.0.10
|
|
282
|
+
[v1.0.9]: https://github.com/zauberware/capistrano-ops/compare/v1.0.8...v1.0.9
|
|
283
|
+
[v1.0.8]: https://github.com/zauberware/capistrano-ops/compare/v1.0.7...v1.0.8
|
|
284
|
+
[v1.0.7]: https://github.com/zauberware/capistrano-ops/compare/v1.0.6...v1.0.7
|
|
285
|
+
[v1.0.6]: https://github.com/zauberware/capistrano-ops/compare/v1.0.5...v1.0.6
|
|
286
|
+
[v1.0.5]: https://github.com/zauberware/capistrano-ops/compare/v1.0.4...v1.0.5
|
|
287
|
+
[v1.0.4]: https://github.com/zauberware/capistrano-ops/compare/v1.0.3...v1.0.4
|
|
288
|
+
[v1.0.3]: https://github.com/zauberware/capistrano-ops/compare/v1.0.2...v1.0.3
|
|
289
|
+
[v1.0.2]: https://github.com/zauberware/capistrano-ops/compare/v1.0.1...v1.0.2
|
|
290
|
+
[v1.0.1]: https://github.com/zauberware/capistrano-ops/compare/v1.0.0...v1.0.1
|
|
291
|
+
[v1.0.0]: https://github.com/zauberware/capistrano-ops/compare/v0.2.14...v1.0.0
|
|
292
|
+
[v0.2.14]: https://github.com/zauberware/capistrano-ops/compare/v0.2.13...v0.2.14
|
|
293
|
+
[v0.2.13]: https://github.com/zauberware/capistrano-ops/compare/v0.2.12...v0.2.13
|
|
294
|
+
[v0.2.12]: https://github.com/zauberware/capistrano-ops/compare/v0.2.11...v0.2.12
|
|
295
|
+
[v0.2.11]: https://github.com/zauberware/capistrano-ops/compare/v0.2.10...v0.2.11
|
|
296
|
+
[v0.2.10]: https://github.com/zauberware/capistrano-ops/compare/v0.2.9...v0.2.10
|
|
297
|
+
[v0.2.9]: https://github.com/zauberware/capistrano-ops/compare/v0.2.8...v0.2.9
|
|
298
|
+
[v0.2.8]: https://github.com/zauberware/capistrano-ops/compare/v0.2.7...v0.2.8
|
|
299
|
+
[v0.2.7]: https://github.com/zauberware/capistrano-ops/compare/v0.2.6...v0.2.7
|
|
300
|
+
[v0.2.6]: https://github.com/zauberware/capistrano-ops/compare/v0.2.5...v0.2.6
|
|
301
|
+
[v0.2.5]: https://github.com/zauberware/capistrano-ops/compare/v0.2.4...v0.2.5
|
|
302
|
+
[v0.2.4]: https://github.com/zauberware/capistrano-ops/compare/v0.2.3...v0.2.4
|
|
303
|
+
[v0.2.3]: https://github.com/zauberware/capistrano-ops/compare/v0.2.2...v0.2.3
|
|
304
|
+
[v0.2.2]: https://github.com/zauberware/capistrano-ops/compare/v0.1.5...v0.2.2
|
|
305
|
+
[v0.1.5]: https://github.com/zauberware/capistrano-ops/compare/v0.1.4...v0.1.5
|
|
306
|
+
[v0.1.4]: https://github.com/zauberware/capistrano-ops/compare/v0.1.3...v0.1.4
|
|
307
|
+
[v0.1.3]: https://github.com/zauberware/capistrano-ops/compare/v0.1.2...v0.1.3
|
|
308
|
+
[v0.1.2]: https://github.com/zauberware/capistrano-ops/compare/v0.1.1...v0.1.2
|
|
309
|
+
[v0.1.1]: https://github.com/zauberware/capistrano-ops/compare/v0.1.0...v0.1.1
|
|
310
|
+
[v0.1.0]: https://github.com/zauberware/capistrano-ops/compare/v0.0.7...v0.1.0
|
|
311
|
+
[v0.0.7]: https://github.com/zauberware/capistrano-ops/releases/tag/v0.0.7
|
data/Rakefile
CHANGED
|
@@ -6,3 +6,20 @@ require 'rspec/core/rake_task'
|
|
|
6
6
|
RSpec::Core::RakeTask.new(:spec)
|
|
7
7
|
|
|
8
8
|
task default: :spec
|
|
9
|
+
|
|
10
|
+
namespace :version do
|
|
11
|
+
desc 'Bump patch version (0.1.0 -> 0.1.1)'
|
|
12
|
+
task :patch do
|
|
13
|
+
ruby 'scripts/bump_version.rb patch'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
desc 'Bump minor version (0.1.0 -> 0.2.0)'
|
|
17
|
+
task :minor do
|
|
18
|
+
ruby 'scripts/bump_version.rb minor'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
desc 'Bump major version (0.1.0 -> 1.0.0)'
|
|
22
|
+
task :major do
|
|
23
|
+
ruby 'scripts/bump_version.rb major'
|
|
24
|
+
end
|
|
25
|
+
end
|
data/capistrano-ops.gemspec
CHANGED
|
@@ -15,17 +15,18 @@ Gem::Specification.new do |s|
|
|
|
15
15
|
s.summary = 'devops tasks for rails applications'
|
|
16
16
|
s.description = 'A collection of devops tasks for rails applications'
|
|
17
17
|
s.files = `git ls-files`.split("\n")
|
|
18
|
-
s.test_files = `git ls-files -- test/{functional,unit}/*`.split("\n")
|
|
19
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
|
20
19
|
s.require_paths = ['lib']
|
|
21
20
|
|
|
22
|
-
s.required_ruby_version = '>=
|
|
23
|
-
s.add_dependency 'aws-sdk-s3', '~> 1.
|
|
21
|
+
s.required_ruby_version = '>= 3.1.4', '< 3.4.0'
|
|
22
|
+
s.add_dependency 'aws-sdk-s3', '~> 1.208'
|
|
24
23
|
s.add_dependency 'faraday'
|
|
25
24
|
s.add_dependency 'nokogiri'
|
|
26
25
|
s.add_dependency 'rails'
|
|
27
|
-
s.add_development_dependency 'bundler', '~> 2.
|
|
28
|
-
s.add_development_dependency 'rake', '~>
|
|
29
|
-
s.add_development_dependency '
|
|
30
|
-
s.add_development_dependency 'rubocop
|
|
26
|
+
s.add_development_dependency 'bundler', '~> 2.0'
|
|
27
|
+
s.add_development_dependency 'rake', '~> 13.0'
|
|
28
|
+
s.add_development_dependency 'rspec', '~> 3.0'
|
|
29
|
+
s.add_development_dependency 'rubocop', '~> 1.0'
|
|
30
|
+
s.add_development_dependency 'rubocop-rake', '~> 0.6'
|
|
31
|
+
s.add_development_dependency 'rubocop-rspec', '~> 2.0'
|
|
31
32
|
end
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# Version management script for Capistrano Ops Gem
|
|
5
|
+
# Usage: ruby scripts/bump_version.rb [patch|minor|major]
|
|
6
|
+
|
|
7
|
+
require 'fileutils'
|
|
8
|
+
require_relative '../lib/capistrano/ops/version'
|
|
9
|
+
|
|
10
|
+
class VersionBumper
|
|
11
|
+
VALID_TYPES = %w[patch minor major].freeze
|
|
12
|
+
VERSION_FILE = 'lib/capistrano/ops/version.rb'
|
|
13
|
+
CHANGELOG_FILE = 'CHANGELOG.md'
|
|
14
|
+
|
|
15
|
+
def initialize(bump_type)
|
|
16
|
+
@bump_type = bump_type.to_s.downcase
|
|
17
|
+
@current_version = Capistrano::Ops::VERSION
|
|
18
|
+
validate_bump_type!
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def bump!
|
|
22
|
+
puts "Current version: #{@current_version}"
|
|
23
|
+
|
|
24
|
+
new_version = calculate_new_version
|
|
25
|
+
puts "New version: #{new_version}"
|
|
26
|
+
|
|
27
|
+
# Update version file
|
|
28
|
+
update_version_file(new_version)
|
|
29
|
+
|
|
30
|
+
# Update changelog
|
|
31
|
+
update_changelog(new_version)
|
|
32
|
+
|
|
33
|
+
# Create git commit
|
|
34
|
+
create_git_commit(new_version) if git_available?
|
|
35
|
+
|
|
36
|
+
puts 'Version bumped successfully!'
|
|
37
|
+
puts ''
|
|
38
|
+
puts '📋 Next steps:'
|
|
39
|
+
puts '1. Review the changes (git diff)'
|
|
40
|
+
puts '2. Fill in CHANGELOG.md with actual changes'
|
|
41
|
+
puts '3. Commit and tag:'
|
|
42
|
+
puts " git add #{VERSION_FILE} #{CHANGELOG_FILE}"
|
|
43
|
+
puts " git commit -m 'Release version #{new_version}'"
|
|
44
|
+
puts " git tag -a v#{new_version} -m 'Release version #{new_version}'"
|
|
45
|
+
puts '4. Push to GitHub:'
|
|
46
|
+
puts " git push origin main && git push origin v#{new_version}"
|
|
47
|
+
puts '5. Create GitHub Release:'
|
|
48
|
+
puts " gh release create v#{new_version} --title 'v#{new_version}' \\"
|
|
49
|
+
puts " --notes-file <(sed -n '/## \\[#{new_version}\\]/,/## \\[/p' CHANGELOG.md | sed '$d')"
|
|
50
|
+
puts ''
|
|
51
|
+
puts '→ GitHub Actions will automatically publish to RubyGems.org! 🚀'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def validate_bump_type!
|
|
57
|
+
return if VALID_TYPES.include?(@bump_type)
|
|
58
|
+
|
|
59
|
+
puts "Error: Invalid bump type '#{@bump_type}'"
|
|
60
|
+
puts "Valid types: #{VALID_TYPES.join(', ')}"
|
|
61
|
+
exit 1
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def calculate_new_version
|
|
65
|
+
parts = @current_version.split('.').map(&:to_i)
|
|
66
|
+
|
|
67
|
+
case @bump_type
|
|
68
|
+
when 'patch'
|
|
69
|
+
parts[2] += 1
|
|
70
|
+
when 'minor'
|
|
71
|
+
parts[1] += 1
|
|
72
|
+
parts[2] = 0
|
|
73
|
+
when 'major'
|
|
74
|
+
parts[0] += 1
|
|
75
|
+
parts[1] = 0
|
|
76
|
+
parts[2] = 0
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
parts.join('.')
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def update_version_file(new_version)
|
|
83
|
+
puts "Updating #{VERSION_FILE}..."
|
|
84
|
+
|
|
85
|
+
content = File.read(VERSION_FILE)
|
|
86
|
+
updated_content = content.gsub(
|
|
87
|
+
/VERSION = ['"][^'"]*['"]/,
|
|
88
|
+
"VERSION = '#{new_version}'"
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
File.write(VERSION_FILE, updated_content)
|
|
92
|
+
puts '✓ Version file updated'
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def update_changelog(new_version)
|
|
96
|
+
return unless File.exist?(CHANGELOG_FILE)
|
|
97
|
+
|
|
98
|
+
puts "Updating #{CHANGELOG_FILE}..."
|
|
99
|
+
|
|
100
|
+
# Read existing changelog
|
|
101
|
+
content = File.read(CHANGELOG_FILE)
|
|
102
|
+
|
|
103
|
+
# Find the [Unreleased] section and replace it
|
|
104
|
+
lines = content.lines
|
|
105
|
+
|
|
106
|
+
today = Time.now.strftime('%Y-%m-%d')
|
|
107
|
+
|
|
108
|
+
# Replace [Unreleased] header with new version
|
|
109
|
+
unreleased_index = lines.find_index { |line| line.start_with?('## [Unreleased]') }
|
|
110
|
+
|
|
111
|
+
if unreleased_index
|
|
112
|
+
# Create new version entry
|
|
113
|
+
new_entry = [
|
|
114
|
+
"## [Unreleased]\n",
|
|
115
|
+
"\n",
|
|
116
|
+
"## [#{new_version}] - #{today}\n"
|
|
117
|
+
]
|
|
118
|
+
|
|
119
|
+
# Replace [Unreleased] line
|
|
120
|
+
lines[unreleased_index] = new_entry.join
|
|
121
|
+
|
|
122
|
+
# Update comparison links at the bottom
|
|
123
|
+
# Find and update the [Unreleased] link
|
|
124
|
+
unreleased_link_index = lines.rindex { |line| line.start_with?('[Unreleased]:') }
|
|
125
|
+
if unreleased_link_index
|
|
126
|
+
# Update [Unreleased] to compare from new version to HEAD
|
|
127
|
+
lines[unreleased_link_index] = "[Unreleased]: https://github.com/zauberware/capistrano-ops/compare/v#{new_version}...HEAD\n"
|
|
128
|
+
# Add new version link
|
|
129
|
+
lines.insert(unreleased_link_index + 1, "[#{new_version}]: https://github.com/zauberware/capistrano-ops/releases/tag/v#{new_version}\n")
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Write back to file
|
|
134
|
+
File.write(CHANGELOG_FILE, lines.join)
|
|
135
|
+
puts '✓ Changelog updated (please fill in the release notes under the new version)'
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def git_available?
|
|
139
|
+
system('git --version > /dev/null 2>&1')
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def create_git_commit(new_version)
|
|
143
|
+
puts 'Creating git commit...'
|
|
144
|
+
|
|
145
|
+
# Add modified files
|
|
146
|
+
system("git add #{VERSION_FILE}")
|
|
147
|
+
system("git add #{CHANGELOG_FILE}") if File.exist?(CHANGELOG_FILE)
|
|
148
|
+
|
|
149
|
+
# Create commit
|
|
150
|
+
commit_message = "Bump version to #{new_version}"
|
|
151
|
+
if system("git commit -m '#{commit_message}'")
|
|
152
|
+
puts "✓ Git commit created: #{commit_message}"
|
|
153
|
+
else
|
|
154
|
+
puts '⚠ Failed to create git commit (you may need to commit manually)'
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Main execution
|
|
160
|
+
if ARGV.empty?
|
|
161
|
+
puts "Usage: #{$PROGRAM_NAME} [patch|minor|major]"
|
|
162
|
+
puts ''
|
|
163
|
+
puts 'Examples:'
|
|
164
|
+
puts " #{$PROGRAM_NAME} patch # 1.0.0 -> 1.0.1"
|
|
165
|
+
puts " #{$PROGRAM_NAME} minor # 1.0.0 -> 1.1.0"
|
|
166
|
+
puts " #{$PROGRAM_NAME} major # 1.0.0 -> 2.0.0"
|
|
167
|
+
exit 1
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
bump_type = ARGV[0]
|
|
171
|
+
bumper = VersionBumper.new(bump_type)
|
|
172
|
+
bumper.bump!
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: capistrano-ops
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Florian Crusius
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-12-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aws-sdk-s3
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '1.
|
|
19
|
+
version: '1.208'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '1.
|
|
26
|
+
version: '1.208'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: faraday
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,56 +72,84 @@ dependencies:
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 2.
|
|
75
|
+
version: '2.0'
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 2.
|
|
82
|
+
version: '2.0'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: rake
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
89
|
+
version: '13.0'
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '
|
|
96
|
+
version: '13.0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rspec
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '3.0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '3.0'
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: rubocop
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements:
|
|
101
115
|
- - "~>"
|
|
102
116
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 1.
|
|
117
|
+
version: '1.0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '1.0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: rubocop-rake
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0.6'
|
|
104
132
|
type: :development
|
|
105
133
|
prerelease: false
|
|
106
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
135
|
requirements:
|
|
108
136
|
- - "~>"
|
|
109
137
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
138
|
+
version: '0.6'
|
|
111
139
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rubocop-
|
|
140
|
+
name: rubocop-rspec
|
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
|
114
142
|
requirements:
|
|
115
143
|
- - "~>"
|
|
116
144
|
- !ruby/object:Gem::Version
|
|
117
|
-
version:
|
|
145
|
+
version: '2.0'
|
|
118
146
|
type: :development
|
|
119
147
|
prerelease: false
|
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
149
|
requirements:
|
|
122
150
|
- - "~>"
|
|
123
151
|
- !ruby/object:Gem::Version
|
|
124
|
-
version:
|
|
152
|
+
version: '2.0'
|
|
125
153
|
description: A collection of devops tasks for rails applications
|
|
126
154
|
email:
|
|
127
155
|
- florian@zauberware.com
|
|
@@ -131,10 +159,12 @@ executables:
|
|
|
131
159
|
extensions: []
|
|
132
160
|
extra_rdoc_files: []
|
|
133
161
|
files:
|
|
162
|
+
- ".github/workflows/release.yml"
|
|
134
163
|
- ".gitignore"
|
|
135
164
|
- ".rubocop.yml"
|
|
136
165
|
- ".ruby-version"
|
|
137
166
|
- ".travis.yml"
|
|
167
|
+
- CHANGELOG.md
|
|
138
168
|
- Gemfile
|
|
139
169
|
- LICENSE.txt
|
|
140
170
|
- README.md
|
|
@@ -208,6 +238,7 @@ files:
|
|
|
208
238
|
- lib/capistrano/ops/wkhtmltopdf.rb
|
|
209
239
|
- lib/capistrano/ops/wkhtmltopdf/helpers.rb
|
|
210
240
|
- lib/capistrano/ops/wkhtmltopdf/tasks/setup.rake
|
|
241
|
+
- scripts/bump_version.rb
|
|
211
242
|
homepage: https://github.com/zauberware/capistrano-ops
|
|
212
243
|
licenses:
|
|
213
244
|
- MIT
|
|
@@ -220,7 +251,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
220
251
|
requirements:
|
|
221
252
|
- - ">="
|
|
222
253
|
- !ruby/object:Gem::Version
|
|
223
|
-
version:
|
|
254
|
+
version: 3.1.4
|
|
224
255
|
- - "<"
|
|
225
256
|
- !ruby/object:Gem::Version
|
|
226
257
|
version: 3.4.0
|
|
@@ -230,7 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
230
261
|
- !ruby/object:Gem::Version
|
|
231
262
|
version: '0'
|
|
232
263
|
requirements: []
|
|
233
|
-
rubygems_version: 3.
|
|
264
|
+
rubygems_version: 3.5.22
|
|
234
265
|
signing_key:
|
|
235
266
|
specification_version: 4
|
|
236
267
|
summary: devops tasks for rails applications
|