diff --git a/.build/bb.edn b/.build/bb.edn new file mode 100644 index 00000000..24c26ab4 --- /dev/null +++ b/.build/bb.edn @@ -0,0 +1,26 @@ +{:deps {borkdude/gh-release-artifact + #_{:local/root "../gh-release-artifact"} + {:git/url "https://github.com/borkdude/gh-release-artifact" + :sha "fc00f75f4ba9ab6bd9f228e9ed288e019a534e0c"}} + :tasks {:requires ([clojure.string :as str]) + -current-sha {:requires ([clojure.java.shell :refer [sh]]) + :task (-> (sh "git" "rev-parse" "HEAD") + :out + str/trim)} + -current-version {:task (-> (slurp "resources/BABASHKA_VERSION") + str/trim)} + -github-token (if-let [ght (System/getenv "GITHUB_TOKEN")] + ght + (do + (println "Terminating early since GITHUB_TOKEN wasn't set") + (System/exit 0))) + release-artifact {:requires ([borkdude.gh-release-artifact :as ghr]) + :depends [-github-token -current-sha -current-version] + :task (let [file (first *command-line-args*)] + (assert file "File name must be provided") + (ghr/overwrite-asset {:org "babashka" + :repo "babashka" + :file file + :commit -current-sha + :tag (str "v" -current-version)}) + nil)}}} diff --git a/.circleci/config.yml b/.circleci/config.yml index 71e30628..885555a4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -56,7 +56,13 @@ jobs: mkdir -p /tmp/release script/uberjar VERSION=$(cat resources/BABASHKA_VERSION) - cp target/babashka-$VERSION-standalone.jar /tmp/release/babashka-$VERSION-standalone.jar + jar=target/babashka-$VERSION-standalone.jar + cp $jar /tmp/release + + java -jar $jar script/reflection.clj + reflection="babashka-$VERSION-reflection.json" + BABASHKA_EDN=".build/bb.edn" java -jar "$jar" release-artifact "$jar" + BABASHKA_EDN=".build/bb.edn" java -jar "$jar" release-artifact "$reflection" - store_artifacts: path: /tmp/release destination: release diff --git a/.circleci/script/release b/.circleci/script/release index 376c5616..4579ac5f 100755 --- a/.circleci/script/release +++ b/.circleci/script/release @@ -19,7 +19,13 @@ if [ "$BABASHKA_STATIC" = "true" ]; then arch="$arch-static" fi -tar zcvf "babashka-$VERSION-$BABASHKA_PLATFORM-$arch.tar.gz" bb # bbk +archive="babashka-$VERSION-$BABASHKA_PLATFORM-$arch.tar.gz" + +tar zcvf "$archive" bb # bbk + +cd - + +BABASHKA_EDN=".build/bb.edn" ./bb release-artifact "/tmp/release/$archive" ## cleanup diff --git a/appveyor.yml b/appveyor.yml index a837a22a..3fb7e31e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -52,6 +52,16 @@ build_script: call script/compile.bat + echo Creating zip archive + + set zip=babashka-%BABASHKA_VERSION%-windows-amd64.zip + + jar -cMf %zip% bb.exe + + set BABASHKA_EDN=.build/bb.edn + + bb release-artifact %zip% + # - cmd: >- # lein clean diff --git a/script/compile.bat b/script/compile.bat index 7e62fa4e..fe0784e2 100644 --- a/script/compile.bat +++ b/script/compile.bat @@ -55,6 +55,3 @@ call %GRAALVM_HOME%\bin\native-image.cmd ^ if %errorlevel% neq 0 exit /b %errorlevel% call bb "(+ 1 2 3)" - -echo Creating zip archive -jar -cMf babashka-%BABASHKA_VERSION%-windows-amd64.zip bb.exe