forked from ungleich-public/cdist
		
	many release related cleanups
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
This commit is contained in:
		
					parent
					
						
							
								24bb4aa481
							
						
					
				
			
			
				commit
				
					
						fc9dd61fe0
					
				
			
		
					 3 changed files with 106 additions and 99 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -27,3 +27,4 @@ cdist/version.py | ||||||
| /pkg | /pkg | ||||||
| /src | /src | ||||||
| build | build | ||||||
|  | .lock-* | ||||||
|  |  | ||||||
							
								
								
									
										159
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										159
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -18,6 +18,9 @@ | ||||||
| #
 | #
 | ||||||
| #
 | #
 | ||||||
| 
 | 
 | ||||||
|  | # dist = local
 | ||||||
|  | # release = remote
 | ||||||
|  | 
 | ||||||
| A2XM=a2x -f manpage --no-xmllint -a encoding=UTF-8 | A2XM=a2x -f manpage --no-xmllint -a encoding=UTF-8 | ||||||
| A2XH=a2x -f xhtml --no-xmllint -a encoding=UTF-8 | A2XH=a2x -f xhtml --no-xmllint -a encoding=UTF-8 | ||||||
| helper=./bin/build-helper | helper=./bin/build-helper | ||||||
|  | @ -36,6 +39,8 @@ WEBPAGE=$(WEBBASE).mdwn | ||||||
| CHANGELOG_VERSION=$(shell $(helper) changelog-version) | CHANGELOG_VERSION=$(shell $(helper) changelog-version) | ||||||
| CHANGELOG_FILE=docs/changelog | CHANGELOG_FILE=docs/changelog | ||||||
| 
 | 
 | ||||||
|  | VERSION_FILE=cdist/version.py | ||||||
|  | 
 | ||||||
| ################################################################################
 | ################################################################################
 | ||||||
| # Manpages
 | # Manpages
 | ||||||
| #
 | #
 | ||||||
|  | @ -90,20 +95,18 @@ man: $(MANTYPEALL) $(MANREFALL) $(MANSTATICALL) | ||||||
| # Manpages #5: release part
 | # Manpages #5: release part
 | ||||||
| MANWEBDIR=$(WEBBASE)/man/$(CHANGELOG_VERSION) | MANWEBDIR=$(WEBBASE)/man/$(CHANGELOG_VERSION) | ||||||
| 
 | 
 | ||||||
| man-git: man | man-dist: man | ||||||
| 	rm -rf "${MANWEBDIR}" | 	rm -rf "${MANWEBDIR}" | ||||||
| 	mkdir -p "${MANWEBDIR}/man1" "${MANWEBDIR}/man7" | 	mkdir -p "${MANWEBDIR}/man1" "${MANWEBDIR}/man7" | ||||||
| 	cp ${MAN1DSTDIR}/*.html ${MAN1DSTDIR}/*.css ${MANWEBDIR}/man1 | 	cp ${MAN1DSTDIR}/*.html ${MAN1DSTDIR}/*.css ${MANWEBDIR}/man1 | ||||||
| 	cp ${MAN7DSTDIR}/*.html ${MAN7DSTDIR}/*.css ${MANWEBDIR}/man7 | 	cp ${MAN7DSTDIR}/*.html ${MAN7DSTDIR}/*.css ${MANWEBDIR}/man7 | ||||||
| 	cd ${MANWEBDIR} && git add . && git commit -m "cdist manpages update: $(CHANGELOG_VERSION)" | 	cd ${MANWEBDIR} && git add . && git commit -m "cdist manpages update: $(CHANGELOG_VERSION)" | ||||||
| 
 | 
 | ||||||
| man-fix-link: | man-release: web-release | ||||||
| 	# Fix ikiwiki, which does not like symlinks for pseudo security | 	# Fix ikiwiki, which does not like symlinks for pseudo security | ||||||
| 	ssh tee.schottelius.org \
 | 	ssh tee.schottelius.org \
 | ||||||
|     	"cd /home/services/www/nico/www.nico.schottelius.org/www/software/cdist/man && rm -f latest && ln -sf "$(CHANGELOG_VERSION)" latest" |     	"cd /home/services/www/nico/www.nico.schottelius.org/www/software/cdist/man && rm -f latest && ln -sf "$(CHANGELOG_VERSION)" latest" | ||||||
| 
 | 
 | ||||||
| man-release: man web-release |  | ||||||
| 
 |  | ||||||
| ################################################################################
 | ################################################################################
 | ||||||
| # Speeches
 | # Speeches
 | ||||||
| #
 | #
 | ||||||
|  | @ -119,11 +122,11 @@ $(SPEECHDIR)/%.pdf: $(SPEECHDIR)/%.tex | ||||||
| 
 | 
 | ||||||
| speeches: $(SPEECHES) | speeches: $(SPEECHES) | ||||||
| 
 | 
 | ||||||
| speeches-release: speeches | speeches-dist: speeches | ||||||
| 	rm -rf "${SPEECHESWEBDIR}" | 	rm -rf "${SPEECHESWEBDIR}" | ||||||
| 	mkdir -p "${SPEECHESWEBDIR}" | 	mkdir -p "${SPEECHESWEBDIR}" | ||||||
| 	cp ${SPEECHES} "${SPEECHESWEBDIR}" | 	cp ${SPEECHES} "${SPEECHESWEBDIR}" | ||||||
| 	cd ${SPEECHESWEBDIR} && git add . && git commit -m "cdist speeches updated" | 	cd ${SPEECHESWEBDIR} && git add . && git commit -m "cdist speeches updated" || true | ||||||
| 
 | 
 | ||||||
| ################################################################################
 | ################################################################################
 | ||||||
| # Website
 | # Website
 | ||||||
|  | @ -141,31 +144,105 @@ web-doc: | ||||||
| 	rsync -av "$(WEBSRCDIR)/" "${WEBBASE}/.." | 	rsync -av "$(WEBSRCDIR)/" "${WEBBASE}/.." | ||||||
| 	cd "${WEBBASE}/.." && git add cdist* && git commit -m "cdist doc update" cdist* || true | 	cd "${WEBBASE}/.." && git add cdist* && git commit -m "cdist doc update" cdist* || true | ||||||
| 
 | 
 | ||||||
| web-pub: web | web-dist: web-blog web-doc | ||||||
| 	cd "${WEBDIR}" && make pub |  | ||||||
| 
 | 
 | ||||||
| web-release: web-blog web-doc | web-release: web-dist man-dist speeches-dist | ||||||
| 	cd "${WEBDIR}" && make pub | 	cd "${WEBDIR}" && make pub | ||||||
| 
 | 
 | ||||||
| ################################################################################
 | ################################################################################
 | ||||||
| # Release && release check
 | # Release: Mailinglist
 | ||||||
| #
 | #
 | ||||||
| CHECKS=check-version check-date check-unittest | ML_FILE=.lock-ml | ||||||
| 
 | 
 | ||||||
| DIST=dist-tag dist-branch-merge  | # Only send mail once - lock until new changelog things happened
 | ||||||
|  | $(ML_FILE): $(CHANGELOG_FILE) | ||||||
|  | 	$(helper) ml-release $(CHANGELOG_VERSION) | ||||||
|  | 	touch $@ | ||||||
| 
 | 
 | ||||||
| RELEASE=web-release release-man release-pypi release-archlinux-makepkg | ml-release: $(ML_FILE) | ||||||
| RELEASE+=release-blog release-ml |  | ||||||
| RELEASE+=release-freecode release-archlinux-aur-upload |  | ||||||
| 
 | 
 | ||||||
| version=`git describe` |  | ||||||
| versionchangelog=`$(helper) changelog-version` |  | ||||||
| versionfile=cdist/version.py |  | ||||||
| 
 | 
 | ||||||
| archlinuxtar=cdist-${versionchangelog}-1.src.tar.gz | ################################################################################
 | ||||||
|  | # Release: Freecode
 | ||||||
|  | #
 | ||||||
|  | FREECODE_FILE=.lock-freecode | ||||||
| 
 | 
 | ||||||
| $(versionfile): | $(FREECODE_FILE): $(CHANGELOG_FILE) | ||||||
| 	$(helper) version | 	$(helper) freecode-release $(CHANGELOG_VERSION) | ||||||
|  | 	touch $@ | ||||||
|  | 
 | ||||||
|  | freecode-release: $(FREECODE_FILE) | ||||||
|  | 
 | ||||||
|  | ################################################################################
 | ||||||
|  | # git and git dependent stuff
 | ||||||
|  | #
 | ||||||
|  | 
 | ||||||
|  | GIT_TAG_FILE=.git/refs/tags/$(CHANGELOG_VERSION) | ||||||
|  | GIT_SRC_BRANCH=master | ||||||
|  | GIT_DST_BRANCH=$(shell echo $(CHANGELOG_VERSION) | cut -d. -f '1,2') | ||||||
|  | 
 | ||||||
|  | git-tag: $(GIT_TAG_FILE) | ||||||
|  | 
 | ||||||
|  | $(GIT_TAG_FILE): | ||||||
|  | 	@printf "Enter tag description for $(CHANGELOG_VERSION)> " | ||||||
|  | 	@read tagmessage; git tag "$(CHANGELOG_VERSION)" -m "$$tagmessage" | ||||||
|  | 
 | ||||||
|  | #git-branch-merge: git-tag
 | ||||||
|  | git-branch-merge: | ||||||
|  | 	echo $(GIT_DST_BRANCH) | ||||||
|  | 	current=$$(git rev-parse --abbrev-ref HEAD) \
 | ||||||
|  | 	git checkout "$(GIT_DST_BRANCH)" \
 | ||||||
|  | 	git merge "$(GIT_SRC_BRANCH)" | ||||||
|  | 	git checkout "$$current" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | $(VERSION_FILE): .git/refs/heads/* | ||||||
|  | 	echo "VERSION = \"$$(git describe)\"" > $@ | ||||||
|  | 
 | ||||||
|  | # Pub is Nico's "push to all git remotes" thing
 | ||||||
|  | # git-release is the better term
 | ||||||
|  | git-release pub: | ||||||
|  | 	for remote in "" github sf; do \
 | ||||||
|  | 		echo "Pushing to $$remote" \
 | ||||||
|  | 		git push --mirror $$remote \
 | ||||||
|  | 	done   | ||||||
|  | 
 | ||||||
|  | ################################################################################
 | ||||||
|  | # pypi
 | ||||||
|  | #
 | ||||||
|  | pypi-release: man $(VERSION_FILE) git-tag | ||||||
|  | 	python3 setup.py sdist upload | ||||||
|  | 
 | ||||||
|  | ################################################################################
 | ||||||
|  | # archlinux
 | ||||||
|  | #
 | ||||||
|  | ARCHLINUXTAR=cdist-$(CHANGELOG_VERSION)-1.src.tar.gz | ||||||
|  | $(ARCHLINUXTAR): PKGBUILD pypi-release | ||||||
|  | 	makepkg -c --source | ||||||
|  | 
 | ||||||
|  | PKGBUILD: PKGBUILD.in | ||||||
|  | 	./PKGBUILD.in | ||||||
|  | 
 | ||||||
|  | archlinux-release: $(ARCHLINUXTAR) | ||||||
|  | 	burp -c system $^ | ||||||
|  | 
 | ||||||
|  | ################################################################################
 | ||||||
|  | # Release
 | ||||||
|  | #
 | ||||||
|  | 
 | ||||||
|  | CHECKS=check-date check-unittest | ||||||
|  | 
 | ||||||
|  | RELEASE=speeches-dist web-release  | ||||||
|  | RELEASE+=ml-release freecode-release | ||||||
|  | RELEASE+=man-dist pypi-release git-release | ||||||
|  | RELEASE+=archlinux-release | ||||||
|  | 
 | ||||||
|  | release: $(RELEASE) | ||||||
|  | 	echo "Don't forget...: linkedin" | ||||||
|  | 
 | ||||||
|  | release-blog: blog | ||||||
|  | release-ml: release-blog | ||||||
|  | release-pub: man | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| $(DIST): dist-check | $(DIST): dist-check | ||||||
|  | @ -175,47 +252,9 @@ $(RELEASE): $(DIST) $(CHECKS) | ||||||
| check-%: | check-%: | ||||||
| 	$(helper) $@ | 	$(helper) $@ | ||||||
| 
 | 
 | ||||||
| # Pub is Nico's "push to all git remotes" thing
 |  | ||||||
| pub: |  | ||||||
| 	for remote in "" github sf; do \
 |  | ||||||
| 		echo "Pushing to $$remote" \
 |  | ||||||
| 		git push --mirror $$remote \
 |  | ||||||
| 	done   |  | ||||||
| 
 |  | ||||||
| ################################################################################
 |  | ||||||
| # dist code
 |  | ||||||
| #
 |  | ||||||
| dist-check: man |  | ||||||
| 
 |  | ||||||
| dist: $(DIST) |  | ||||||
| 	echo "Run \"make release\" to release to the public" |  | ||||||
| 
 |  | ||||||
| dist-pypi: man version |  | ||||||
| 	python3 setup.py sdist upload |  | ||||||
| 
 |  | ||||||
| $(archlinuxtar): PKGBUILD dist-pypi |  | ||||||
| 	makepkg -c --source |  | ||||||
| 
 |  | ||||||
| ################################################################################
 |  | ||||||
| # release code
 |  | ||||||
| #
 |  | ||||||
| #release: pub $(RELEASE)
 |  | ||||||
| release: release-man |  | ||||||
| 	echo "Don't forget...: linkedin" |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| release-archlinux: $(archlinuxtar) |  | ||||||
| 	burp -c system $^ |  | ||||||
| 	 |  | ||||||
| release-blog: blog |  | ||||||
| release-ml: release-blog |  | ||||||
| release-pub: man |  | ||||||
| 
 |  | ||||||
| PKGBUILD: PKGBUILD.in |  | ||||||
| 	./PKGBUILD.in |  | ||||||
| 
 |  | ||||||
| ################################################################################
 | ################################################################################
 | ||||||
| # Cleanup
 | # Cleanup
 | ||||||
|  | #
 | ||||||
| 
 | 
 | ||||||
| clean: | clean: | ||||||
| 	rm -f $(MAN7DSTDIR)/cdist-reference.text | 	rm -f $(MAN7DSTDIR)/cdist-reference.text | ||||||
|  |  | ||||||
|  | @ -76,16 +76,6 @@ case "$option" in | ||||||
|         "$0" test |         "$0" test | ||||||
|     ;; |     ;; | ||||||
| 
 | 
 | ||||||
|     check-version) |  | ||||||
|         changelog_version=$($0 changelog-version) |  | ||||||
| 
 |  | ||||||
|         if git show --quiet $changelog_version >/dev/null 2>&1; then |  | ||||||
|             echo "Version $changelog_version already exists, aborting." |  | ||||||
|             exit 1 |  | ||||||
|         fi |  | ||||||
|     ;; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     blog) |     blog) | ||||||
|         version=$1; shift |         version=$1; shift | ||||||
|         blogfile=$1; shift |         blogfile=$1; shift | ||||||
|  | @ -113,12 +103,13 @@ eof | ||||||
|         git commit -m "cdist blog update: $version" "$blogfile" || true |         git commit -m "cdist blog update: $version" "$blogfile" || true | ||||||
|     ;; |     ;; | ||||||
| 
 | 
 | ||||||
|  |     ml-release) | ||||||
|  |         version=$1; shift | ||||||
| 
 | 
 | ||||||
|     release-ml) |  | ||||||
|         version=$($0 changelog-version) |  | ||||||
|         to_a=cdist |         to_a=cdist | ||||||
|         to_d=l.schottelius.org |         to_d=l.schottelius.org | ||||||
|         to=${to_a}@${to_d} |         to=${to_a}@${to_d} | ||||||
|  |         to=n@schottelius.org | ||||||
| 
 | 
 | ||||||
|         from_a=nico-cdist |         from_a=nico-cdist | ||||||
|         from_d=schottelius.org |         from_d=schottelius.org | ||||||
|  | @ -136,7 +127,7 @@ cdist $version has been released with the following changes: | ||||||
| 
 | 
 | ||||||
| eof | eof | ||||||
| 
 | 
 | ||||||
|         "$0" changelog-changes |         "$0" changelog-changes "$version" | ||||||
|         cat << eof |         cat << eof | ||||||
| 
 | 
 | ||||||
| Cheers, | Cheers, | ||||||
|  | @ -150,32 +141,8 @@ eof | ||||||
|     ;; |     ;; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     dist-tag) |     freecode-release) | ||||||
|         version=$($0 changelog-version) |         version=$1; shift | ||||||
|         # add tag |  | ||||||
|         printf "Enter tag description for %s> " "$version" |  | ||||||
|         read tagmessage |  | ||||||
|         git tag "$version" -m "$tagmessage" |  | ||||||
|     ;; |  | ||||||
| 
 |  | ||||||
|     dist-branch-merge) |  | ||||||
|         version=$($0 changelog-version) |  | ||||||
|         target_branch=${version%\.*} |  | ||||||
|         current_branch=$(git rev-parse --abbrev-ref HEAD) |  | ||||||
| 
 |  | ||||||
|         if [ "$target_branch" = "$current_branch" ]; then |  | ||||||
|             echo "Skipping merge, already on destination branch" |  | ||||||
|         else |  | ||||||
|             printf "Press enter to git merge $current_branch into \"$target_branch\" > " |  | ||||||
|             read prompt |  | ||||||
|             git checkout "$target_branch" |  | ||||||
|             git merge "$current_branch" |  | ||||||
|             git checkout "$current_branch" |  | ||||||
|         fi |  | ||||||
|    ;; |  | ||||||
| 
 |  | ||||||
|     release-freecode) |  | ||||||
|         version=$($0 changelog-version) |  | ||||||
|         api_token=$(awk '/machine freecode login/ { print $8 }' ~/.netrc) |         api_token=$(awk '/machine freecode login/ { print $8 }' ~/.netrc) | ||||||
| 
 | 
 | ||||||
|         printf "Enter tag list for freecode release %s> " "$version" |         printf "Enter tag list for freecode release %s> " "$version" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue