mirror of
https://github.com/roswell/roswell.git
synced 2026-09-10 07:16:17 -04:00
edit release script.
This commit is contained in:
parent
c90ec457f3
commit
784a61198d
13
Makefile.am
13
Makefile.am
|
|
@ -103,13 +103,14 @@ endif
|
|||
cat $@
|
||||
rm -f $@.tmp
|
||||
|
||||
prepare:
|
||||
release-prepare:
|
||||
ros scripts/release.ros prepare
|
||||
release:
|
||||
release-commit:
|
||||
ros scripts/release.ros release
|
||||
release-2:
|
||||
ros scripts/release.ros release-2
|
||||
|
||||
release-push:
|
||||
ros scripts/release.ros release-push
|
||||
release-changelog:
|
||||
ros scripts/release.ros changelog
|
||||
winrelease:
|
||||
mkdir -p roswell/lisp
|
||||
mkdir -p roswell/documents
|
||||
|
|
@ -122,4 +123,4 @@ test:
|
|||
run-prove roswell-test.asd
|
||||
|
||||
FORCE:
|
||||
.PHONY: prepare release release-2 test winrelease FORCE
|
||||
.PHONY: release-prepare release release-push test winrelease FORCE
|
||||
|
|
|
|||
|
|
@ -93,13 +93,14 @@ exec ros -Q -L sbcl-bin -- $0 "$@"
|
|||
(format out "~A~%" l)))
|
||||
done))
|
||||
|
||||
(defun prepare-changelog ()
|
||||
(uiop:run-program "git checkout master" :output :interactive :error-output :interactive)
|
||||
(let ((lines (with-open-file (in (merge-pathnames "ChangeLog" *project-path*))
|
||||
(loop for l = (read-line in nil nil)
|
||||
while l
|
||||
collect l)))
|
||||
(*new-version* *dummy-version*))
|
||||
(defun ! (x)
|
||||
(uiop:run-program x :output :interactive :error-output :interactive))
|
||||
|
||||
(defun prepare-changelog (argv)
|
||||
(declare (ignore argv))
|
||||
(! "git checkout master")
|
||||
(let* ((lines (uiop:read-file-lines (merge-pathnames "ChangeLog" *project-path*)))
|
||||
(*new-version* *dummy-version*))
|
||||
(with-open-file (out (merge-pathnames "ChangeLog" *project-path*)
|
||||
:direction :output :if-exists :supersede)
|
||||
(format out "~{~A~%~}~{~A~%~}"
|
||||
|
|
@ -126,42 +127,43 @@ exec ros -Q -L sbcl-bin -- $0 "$@"
|
|||
(format t "~&new version name is ~S~%" *new-version*)
|
||||
(force-output)
|
||||
(unless (edit-changelog)
|
||||
(error "changelog isn't prepared"))
|
||||
(format *error-output* "changelog isn't prepared~%Type make release-changelog before make prepare~%")
|
||||
(ros:quit))
|
||||
(edit-configure-ac)
|
||||
(edit-roswell-asd)
|
||||
(show-how-to-release))
|
||||
|
||||
(defun release (argv)
|
||||
(declare (ignore argv))
|
||||
(let ((version (find-version)))
|
||||
(mapc
|
||||
#'uiop:run-program
|
||||
`("git add ChangeLog configure.ac roswell.asd"
|
||||
,(format nil "git commit -m \"bump version to ~A\"" version)))))
|
||||
(!"git checkout master")
|
||||
(!"git add ChangeLog configure.ac roswell.asd")
|
||||
(!(format nil "git commit -m \"bump version to ~A\"" (find-version))))
|
||||
|
||||
(defun release-2 (argv)
|
||||
(defun release-push (argv)
|
||||
(declare (ignore argv))
|
||||
;; TBD check commit message to ensure just released.
|
||||
(!"git checkout release")
|
||||
(!"git merge master")
|
||||
(let ((version (find-version)))
|
||||
(mapc
|
||||
(lambda (x) (uiop:run-program x :output :interactive :error-output :interactive))
|
||||
`("git checkout release"
|
||||
"git merge master"
|
||||
,(format nil "git tag -a \"v~A\" -m \"v~A\"" version version)
|
||||
"git push"
|
||||
"git push --tags"))))
|
||||
(! (format nil "git tag -a \"v~A\" -m \"v~A\"" version version)))
|
||||
(!"git checkout master")
|
||||
(format *error-output* "~{~A~%~}~%"
|
||||
'("Type"
|
||||
"git push origin release:release"
|
||||
"git push --tags"
|
||||
"git push origin master:master")))
|
||||
|
||||
|
||||
(defun changelog (argv)
|
||||
(declare (ignore argv))
|
||||
(prepare-changelog)
|
||||
(let ((version (find-version)))
|
||||
(mapc
|
||||
(lambda (x) (uiop:run-program x :output :interactive :error-output :interactive))
|
||||
`("git add ChangeLog"
|
||||
,(format nil "git commit -m \"[ci skip] prepare ChangeLog entry next to v~A\"" version)))))
|
||||
"prepare changelog lines for newrelease"
|
||||
(! "git checkout master")
|
||||
(prepare-changelog argv)
|
||||
(! "git add ChangeLog")
|
||||
(! (format nil "git commit -m \"[ci skip] prepare ChangeLog entry next to v~A\"" (find-version))))
|
||||
|
||||
(defun main (subcmd &rest argv)
|
||||
(declare (ignorable argv))
|
||||
(let ((subcmd (find subcmd '(release prepare release-2 changelog)
|
||||
(let ((subcmd (find subcmd '(prepare release release-push changelog)
|
||||
:test 'equal :key 'string-downcase)))
|
||||
(when subcmd
|
||||
(funcall subcmd argv))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue