Skip to content

Commit 9b04f93

Browse files
authored
Merge pull request #31 from PractiTest/feature/automated-version-scripts
Changed version calculation code a bit
2 parents fc32ee8 + 8966bd0 commit 9b04f93

File tree

5 files changed

+30
-11
lines changed

5 files changed

+30
-11
lines changed

build.clj

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,42 @@
11
(ns build
22
(:require
3+
[clojure.java.io :as io]
34
[clojure.tools.build.api :as b]))
45

56
(def lib 'practitest/practitest-firecracker)
6-
(def version (format "2.2.%s" (b/git-count-revs nil)))
7+
8+
; Create new tag v<Major>.<Minor> when starting working on new major/minor version branch
9+
(def major-version 2)
10+
(def minor-version 2)
11+
12+
(def commits-count (b/git-process {:git-args (format "rev-list v%s.%s..HEAD --count" major-version minor-version)}))
13+
(def version (format "%s.%s.%s" major-version minor-version commits-count))
714
(def class-dir "target/classes")
815
(def uber-file (format "target/%s-%s-standalone.jar" (name lib) version))
916

1017
;; delay to defer side effects (artifact downloads)
1118
(def basis (delay (b/create-basis {:project "deps.edn"})))
1219

1320
(defn clean [_]
21+
(println "Cleaning directories")
1422
(b/delete {:path "target"}))
1523

1624
(defn uber [_]
25+
(println "Building uberjar for" version)
1726
(clean nil)
1827
(b/copy-dir {:src-dirs ["src"]
1928
:target-dir class-dir})
2029
(b/copy-dir {:src-dirs ["resources"]
2130
:target-dir class-dir})
31+
(println "Compiling clojure code")
2232
(b/compile-clj {:basis @basis
2333
:ns-compile '[practitest-firecracker.core]
2434
:class-dir class-dir})
35+
(println "Packing JAR file")
36+
(spit (io/file class-dir "practitest_firecracker" "firecracker_version.txt")
37+
version)
2538
(b/uber {:class-dir class-dir
2639
:uber-file uber-file
2740
:basis @basis
41+
:manifest {"Implementation-Version" version}
2842
:main 'practitest-firecracker.core}))

src/practitest_firecracker/api.clj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
[throttler.core :refer [fn-throttler]]
66
[clojure.tools.logging :as log]
77
[practitest-firecracker.const :refer :all]
8-
[practitest-firecracker.utils :refer [exit group-errors pformat transform-keys]]))
8+
[practitest-firecracker.utils :refer [exit group-errors pformat transform-keys get-current-version]]))
99

1010
(def backoff-timeout "Backoff timeout in seconds" 20)
1111
(def max-attempts "Number of attempts to run" 10)
@@ -30,8 +30,8 @@
3030
params (cond-> {:basic-auth credentials
3131
:throw-exceptions false
3232
:as :json}
33-
query-params (assoc :query-params (conj query-params {:source "firecracker" :firecracker-version fc-version}))
34-
form-params (assoc :form-params (conj form-params {:source "firecracker" :firecracker-version fc-version}) :content-type :json))]
33+
query-params (assoc :query-params (conj query-params {:source "firecracker" :firecracker-version (get-current-version)}))
34+
form-params (assoc :form-params (conj form-params {:source "firecracker" :firecracker-version (get-current-version)}) :content-type :json))]
3535
(if (nil? uri)
3636
results
3737
(let [{:keys [status body]} (method uri params)]

src/practitest_firecracker/const.clj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
(ns practitest-firecracker.const)
22

3-
(def ^:const fc-version "2.2.1")
4-
53
(def ^:const testset-instances-uri "/projects/%d/instances.json")
64
(def ^:const test-uri "/projects/%d/tests/%d.json")
75
(def ^:const test-steps-uri "/projects/%d/steps.json")

src/practitest_firecracker/core.clj

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@
1010
[practitest-firecracker.parser.core :refer [send-directory parse-files]]
1111
[practitest-firecracker.parser.gherkin :as gherkin]
1212
[practitest-firecracker.api :refer [make-client]]
13-
[practitest-firecracker.utils :refer [exit]]
13+
[practitest-firecracker.utils :refer [exit get-current-version]]
1414
[clojure.pprint :as pprint]
1515
[clojure.java.io :as io]
1616
[clj-time.core :as t]
17-
[clojure.tools.logging :as log]
18-
[practitest-firecracker.const :refer [fc-version]])
17+
[clojure.tools.logging :as log])
1918
(:import (org.slf4j LoggerFactory)
2019
(ch.qos.logback.classic Level Logger))
2120
(:gen-class))
@@ -74,11 +73,11 @@
7473
(pprint/pprint {"=============== args: ===============" args}))
7574

7675
"version"
77-
(log/info "Version: " fc-version)
76+
(log/info "Version:" (get-current-version))
7877

7978
"create-and-populate-testset"
8079
(do
81-
(log/info "Start Running Firecracker, Version: " fc-version)
80+
(log/info "Start Running Firecracker, Version: " (get-current-version))
8281
(timef
8382
"create-and-populate-testset"
8483
(-> (create-testsets client options additional-reports)

src/practitest_firecracker/utils.clj

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
(ns practitest-firecracker.utils
22
(:require
33
[clj-time.core :as t]
4+
[clojure.java.io :as io]
45
[clojure.pprint :as pprint]
56
[clojure.string :as string]
67
[cheshire.core :as json]))
@@ -53,3 +54,10 @@
5354
(assoc a (apply f k args) v))
5455
{}
5556
m)))
57+
58+
(defn- get-current-version* []
59+
(if-let [version-file (io/resource "practitest_firecracker/firecracker_version.txt")]
60+
(slurp version-file)
61+
"2.0-Devel"))
62+
63+
(def get-current-version (memoize get-current-version*))

0 commit comments

Comments
 (0)