Fixed uploader to not commit if there are no changes.

This commit is contained in:
Alexander Artemenko 2021-02-07 10:00:38 +03:00
parent c21a04f575
commit 3501680189

View file

@ -155,44 +155,48 @@ behaviour could be overriden by keyword argument ``:raise t``."
can update README file as well. In this case, we need can update README file as well. In this case, we need
to push the file into the current branch of the repository." to push the file into the current branch of the repository."
(let ((*current-dir* (probe-file #P""))) (let ((*current-dir* (probe-file #P"")))
(cond (macrolet ((if-there-are-changes (&body body)
((git-repository-was-changed-p) `(cond
(log:info "Pushing local changes to the repository") ((git-repository-was-changed-p)
(log:info "Pushing local changes to the repository")
,@body)
(t
(log:info "There is no local changes.")))))
(flet ((make-commit ()
(git "add -u")
(flet ((make-commit () ;; We don't want to commit changes to qlfile,
(git "add -u") ;; because documentation builders might change them:
(git "reset qlfile*")
;; We don't want to commit changes to qlfile, (when (uiop:getenv "GITHUB_ACTIONS")
;; because documentation builders might change them:
(git "reset qlfile*")
(when (uiop:getenv "GITHUB_ACTIONS") (git "config --global user.name \"github-actions[bot]\"")
(git "config --global user.email \"actions@github.com\""))
(git "config --global user.name \"github-actions[bot]\"") (git "commit -m 'Update docs'")))
(git "config --global user.email \"actions@github.com\"")) (cond
((uiop:getenv "GITHUB_HEAD_REF")
(let ((ref (uiop:getenv "GITHUB_HEAD_REF")))
(git "commit -m 'Update docs'"))) ;; Inside github action we are running on
(cond ;; detached commit. Github takes last commit
((uiop:getenv "GITHUB_HEAD_REF") ;; from the "master" branch and merges
(let ((ref (uiop:getenv "GITHUB_HEAD_REF"))) ;; a branch from pull-request settings.
;;
;; Inside github action we are running on ;; To push changes back, we need to change
;; detached commit. Github takes last commit ;; our HEAD back to the pull-request's reference:
;; from the "master" branch and merges (git "checkout " ref)
;; a branch from pull-request settings. ;; Here we need to check again if
;; (if-there-are-changes
;; To push changes back, we need to change
;; our HEAD back to the pull-request's reference:
(git "checkout " ref)
(make-commit) (make-commit)
(git "remote add upstream " (git "remote add upstream "
(get-origin-to-push)) (get-origin-to-push))
(git "push upstream HEAD:" ref))) (git "push upstream HEAD:" ref))))
(t (t
(if-there-are-changes
(make-commit) (make-commit)
(git "push"))))) (git "push"))))))))
;; or
(t (log:info "There is no local changes.")))))
(defun main (&rest argv) (defun main (&rest argv)