Skip to content

Commit e65a210

Browse files
committedAug 14, 2021
Add prerelease and release tasks. Use lein-ver for versions.
1 parent 8dfce3d commit e65a210

File tree

11 files changed

+119
-16
lines changed

11 files changed

+119
-16
lines changed
 

‎Gemfile

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
source 'https://rubygems.org'
22

3+
gem 'edn', '~> 1.1'
4+
gem 'mime-types', '~> 3.3'
35
gem 'rake', '~> 13.0'
46
gem 'rake_circle_ci', '~> 0.9'
5-
gem 'rake_github', '~> 0.5'
7+
gem 'rake_github', '0.8.0.pre.5'
68
gem 'rake_gpg', '~> 0.16'
79
gem 'rake_ssh', '~> 0.4'
810
gem 'rake_leiningen', '~> 0.20'
911
gem 'rake_docker', '~> 2.13'
12+
gem 'semantic', '~> 1.6'

‎Gemfile.lock

+12-3
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,17 @@ GEM
2626
docker-api (1.34.2)
2727
excon (>= 0.47.0)
2828
multi_json
29+
edn (1.1.1)
2930
excon (0.85.0)
30-
faraday (1.5.1)
31+
faraday (1.7.0)
3132
faraday-em_http (~> 1.0)
3233
faraday-em_synchrony (~> 1.0)
3334
faraday-excon (~> 1.1)
3435
faraday-httpclient (~> 1.0.1)
3536
faraday-net_http (~> 1.0)
3637
faraday-net_http_persistent (~> 1.1)
3738
faraday-patron (~> 1.0)
39+
faraday-rack (~> 1.0)
3840
multipart-post (>= 1.2, < 3)
3941
ruby2_keywords (>= 0.0.4)
4042
faraday-em_http (1.0.0)
@@ -44,6 +46,7 @@ GEM
4446
faraday-net_http (1.0.1)
4547
faraday-net_http_persistent (1.2.0)
4648
faraday-patron (1.0.0)
49+
faraday-rack (1.0.0)
4750
hamster (3.0.0)
4851
concurrent-ruby (~> 1.0)
4952
i18n (1.8.10)
@@ -52,6 +55,9 @@ GEM
5255
lino (3.0.0)
5356
hamster (~> 3.0)
5457
open4 (~> 1.3)
58+
mime-types (3.3.1)
59+
mime-types-data (~> 3.2015)
60+
mime-types-data (3.2021.0704)
5561
minitar (0.9)
5662
minitest (5.14.4)
5763
multi_json (1.15.0)
@@ -80,7 +86,7 @@ GEM
8086
rake_factory (0.29.0)
8187
activesupport (>= 4)
8288
rake (~> 13.0)
83-
rake_github (0.7.0)
89+
rake_github (0.8.0.pre.5)
8490
colored2 (~> 3.1)
8591
octokit (~> 4.16)
8692
rake_factory (~> 0.23)
@@ -119,13 +125,16 @@ PLATFORMS
119125
x86_64-linux
120126

121127
DEPENDENCIES
128+
edn (~> 1.1)
129+
mime-types (~> 3.3)
122130
rake (~> 13.0)
123131
rake_circle_ci (~> 0.9)
124132
rake_docker (~> 2.13)
125-
rake_github (~> 0.5)
133+
rake_github (= 0.8.0.pre.5)
126134
rake_gpg (~> 0.16)
127135
rake_leiningen (~> 0.20)
128136
rake_ssh (~> 0.4)
137+
semantic (~> 1.6)
129138

130139
BUNDLED WITH
131140
2.2.20

‎Rakefile

+36-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ require 'rake_leiningen'
66
require 'rake_ssh'
77
require 'yaml'
88

9+
require_relative 'lib/version'
10+
11+
version = Version.from_file('resources/VERSION')
12+
913
task :default => [:'library:check', :'library:test:all']
1014

1115
RakeLeiningen.define_installation_tasks(
@@ -131,15 +135,41 @@ namespace :library do
131135
task all: %w[unit integration]
132136
end
133137

138+
namespace :version do
139+
task :bump, [:type] do |_, args|
140+
141+
end
142+
end
143+
134144
namespace :publish do
135-
RakeLeiningen.define_release_task(
145+
RakeGithub.define_release_task(
136146
name: :prerelease,
137-
profile: 'prerelease'
138-
)
147+
repository: 'logicblocks/kafka.connect.event-feed'
148+
) do |t|
149+
github_config =
150+
YAML.load_file('config/secrets/github/config.yaml')
151+
152+
t.access_token = github_config['github_personal_access_token']
153+
t.tag_name = version.to_s
154+
t.prerelease = true
155+
t.assets = [
156+
"target/uberjar/kafka.connect.event-feed-#{version}-standalone.jar"
157+
]
158+
end
139159

140-
RakeLeiningen.define_release_task(
160+
RakeGithub.define_release_task(
141161
name: :release,
142-
profile: 'release'
143-
)
162+
repository: 'logicblocks/kafka.connect.event-feed'
163+
) do |t|
164+
github_config =
165+
YAML.load_file('config/secrets/github/config.yaml')
166+
167+
t.access_token = github_config['github_personal_access_token']
168+
t.tag_name = version.to_s
169+
t.prerelease = false
170+
t.assets = [
171+
"target/uberjar/kafka.connect.event-feed-#{version}-standalone.jar"
172+
]
173+
end
144174
end
145175
end

‎TODO.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ ToDo
44
Tasks
55
-----
66

7-
* Use version number from pipeline
87
* Allow event offset to be reset?
98
* Handle dead letters?
9+
* Test that restarting the connector (or even just kafka connect) doesn't result
10+
in re-ingesting from the beginning of the event feed

‎config/secrets/github/config.yaml

0 Bytes
Binary file not shown.

‎lib/version.rb

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
require 'edn'
2+
require 'semantic'
3+
4+
class Version
5+
def self.from_file(path)
6+
parts =
7+
File.exist?(path) ?
8+
File.open(path) { |file| EDN.read(file) } :
9+
{
10+
major: 0,
11+
minor: 0,
12+
patch: 0
13+
}
14+
15+
major = parts[:major]
16+
minor = parts[:minor]
17+
patch = parts[:patch]
18+
pre_release = parts[:'pre-release']
19+
build = parts[:build]
20+
21+
string = major.to_s + '.' + minor.to_s + '.' + patch.to_s +
22+
(pre_release ? "-#{pre_release}" : '') +
23+
(build ? "+#{build}" : '')
24+
25+
Version.new(string)
26+
end
27+
28+
def initialize(version_string)
29+
@version = Semantic::Version.new(version_string)
30+
end
31+
32+
def to_s
33+
@version.to_s
34+
end
35+
end

‎project.clj

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
[lein-cljfmt "0.6.7"]
1616
[lein-kibit "0.1.8"]
1717
[lein-bikeshed "0.5.2"]
18+
[lein-ver "1.1.0"]
1819
[jonase/eastwood "0.3.11"]]
1920

2021
:dependencies [[org.clojure/clojure "1.10.3"]

‎resources/VERSION

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
:major 0
3+
:minor 0
4+
:patch 1
5+
:pre-release "RC6"
6+
:build nil
7+
}

‎src/clojure/kafka/connect/event_feed/connector.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
(efc/configuration-definition))
3333

3434
(defn version [_]
35-
(efv/version))
35+
(efv/string))
3636

3737
(defn task-class [_]
3838
EventFeedSourceTask)

‎src/clojure/kafka/connect/event_feed/task.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,4 +140,4 @@
140140
(pr-str metadata)))
141141

142142
(defn version [_]
143-
(efv/version))
143+
(efv/string))
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,21 @@
1-
(ns kafka.connect.event-feed.version)
1+
(ns kafka.connect.event-feed.version
2+
(:require
3+
[clojure.java.io :refer [reader resource]]
4+
[clojure.string :refer [join]])
5+
(:import java.io.PushbackReader))
26

3-
(defmacro version []
4-
`~(System/getProperty "kafka.connect.event-feed.version"))
7+
(declare version major minor patch pre-release build string)
8+
9+
(let [version-file (resource "VERSION")]
10+
(when version-file
11+
(with-open [rdr (reader version-file)]
12+
(binding [*read-eval* false]
13+
(def version (read (PushbackReader. rdr)))
14+
(def major (:major version))
15+
(def minor (:minor version))
16+
(def patch (:patch version))
17+
(def pre-release (:pre-release version))
18+
(def build (:build version))
19+
(def string (str (join "." (filter identity [major minor patch]))
20+
(when pre-release (str "-" pre-release))
21+
(when build (str "+" build))))))))

0 commit comments

Comments
 (0)
Please sign in to comment.