summaryrefslogtreecommitdiff
path: root/publishrelease
diff options
context:
space:
mode:
authorMike Vink <mike@pionative.com>2025-02-03 21:29:42 +0100
committerMike Vink <mike@pionative.com>2025-02-03 21:29:42 +0100
commit5155816b7b925dec5d5feb1568b1d7ceb00938b9 (patch)
treedeca28ea15e79f6f804c3d90d2ba757881638af5 /publishrelease
fetch tarballHEADmaster
Diffstat (limited to 'publishrelease')
-rwxr-xr-xpublishrelease213
1 files changed, 213 insertions, 0 deletions
diff --git a/publishrelease b/publishrelease
new file mode 100755
index 0000000..f11218e
--- /dev/null
+++ b/publishrelease
@@ -0,0 +1,213 @@
+#!/usr/bin/env bash
+
+[ "$1" ] || {
+ echo "usage.....: $0 <version>"
+ echo "example...: $0 3.1.1"
+ echo
+ echo "Before running this, make sure the packages were built:"
+ echo " makedist 3.1.1 /opt/lua54/ binary sign"
+ echo "And the tag was merged:"
+ echo " mergerelease 3.1.1"
+ echo
+ exit 1
+}
+
+#######################################
+# preliminary checks
+#######################################
+
+v="$1"
+
+git checkout v$v || {
+ echo "Could not checkout release tag."
+}
+
+packages=(
+ luarocks-$v-windows-32.zip
+ luarocks-$v-windows-32.zip.asc
+ luarocks-$v-windows-64.zip
+ luarocks-$v-windows-64.zip.asc
+ luarocks-$v-linux-x86_64.zip
+ luarocks-$v-linux-x86_64.zip.asc
+ luarocks-$v-win32.zip
+ luarocks-$v-win32.zip.asc
+ luarocks-$v.tar.gz
+ luarocks-$v.tar.gz.asc
+)
+
+for f in "${packages[@]}" luarocks-$v-1.rockspec
+do
+ [ -e "$f" ] || {
+ echo "Missing file $f"
+ exit 1
+ }
+done
+
+#######################################
+# utility
+#######################################
+
+function confirm() {
+ branch="$1"
+
+ echo "****************************************"
+ git diff $branch
+ echo "****************************************"
+ git status
+ echo "****************************************"
+
+ echo "Everything looks all right? (y/n)"
+ echo "(Answering y will commit and push)"
+ read
+ if ! [ "$REPLY" == "y" ]
+ then
+ git reset
+ git checkout .
+ git checkout master
+ exit 1
+ fi
+}
+
+#######################################
+# luarocks.org
+#######################################
+
+luarocks upload luarocks-$v-1.rockspec
+
+#######################################
+# gh-pages
+#######################################
+
+git checkout gh-pages
+git fetch origin gh-pages
+git reset --hard origin/gh-pages
+
+cp "${packages[@]}" releases
+cd releases
+git add "${packages[@]}"
+gawk '
+/add new release here/ {
+ print "<!-- add new release here -->"
+ print ""
+ print "<tr><td><a href=\"luarocks-'$v'.tar.gz\">luarocks-'$v'.tar.gz</a></td><td><a href=\"luarocks-'$v'.tar.gz.asc\">PGP signature</a></td></tr>"
+ print "<tr><td><a href=\"luarocks-'$v'-windows-32.zip\">luarocks-'$v'-windows-32.zip</a> (luarocks.exe stand-alone Windows 32-bit binary)</td><td><a href=\"luarocks-'$v'-windows-32.zip.asc\">PGP signature</a></td></tr>"
+ print "<tr><td><a href=\"luarocks-'$v'-windows-64.zip\">luarocks-'$v'-windows-64.zip</a> (luarocks.exe stand-alone Windows 64-bit binary)</td><td><a href=\"luarocks-'$v'-windows-64.zip.asc\">PGP signature</a></td></tr>"
+ print "<tr><td><a href=\"luarocks-'$v'-linux-x86_64.zip\">luarocks-'$v'-linux-x86_64.zip</a> (luarocks stand-alone Linux x86_64 binary)</td><td><a href=\"luarocks-'$v'-linux-x86_64.zip.asc\">PGP signature</a></td></tr>"
+ print "<tr><td><a href=\"luarocks-'$v'-win32.zip\">luarocks-'$v'-win32.zip</a> (legacy Windows package, includes Lua 5.1)</td><td><a href=\"luarocks-'$v'-win32.zip.asc\">PGP signature</a></td></tr>"
+ done = 1
+}
+// {
+ if (done == 1) {
+ done = 0
+ } else {
+ print
+ }
+}
+' index.html > index.html.1
+mv index.html.1 index.html
+git add index.html
+
+gawk '
+/^\[$/ {
+ go = 1
+}
+// {
+ print
+ if (go == 1) {
+ go = 0
+
+ print "{"
+ print "\"'$v'\": {"
+ print "\"date\": \"'$(date +'%Y-%m-%d')'\","
+ print "\"files\": [\"luarocks-'$v'.tar.gz\", \"luarocks-'$v'.tar.gz.asc\", \"luarocks-'$v'-win32.zip\", \"luarocks-'$v'-win32.zip.asc\", \"luarocks-'$v'-windows-32.zip\", \"luarocks-'$v'-windows-32.zip.asc\", \"luarocks-'$v'-windows-64.zip\", \"luarocks-'$v'-windows-64.zip.asc\", \"luarocks-'$v'-linux-x86_64.zip\", \"luarocks-'$v'-linux-x86_64.zip.asc\"],"
+ print "\"about\": []"
+ print "}},"
+ }
+}
+' releases.json > releases.json.1
+mv releases.json.1 releases.json
+git add releases.json
+
+confirm gh-pages
+
+git commit -av -m "Release $v"
+git push
+
+#######################################
+# luarocks.org
+#######################################
+
+git checkout v$v
+
+luarocks upload luarocks-$v-1.rockspec
+
+git checkout master
+
+#######################################
+# luarocks-site
+#######################################
+
+if [ -e ../luarocks-site ]
+then
+ cd ../luarocks-site
+ git pull
+else
+ cd ..
+ git clone ssh://git@github.com/luarocks/luarocks-site
+ cd luarocks-site
+fi
+
+sed -i 's,luarocks-[0-9]*\.[0-9]*\.[0-9]*,luarocks-'$v',' static/md/home.md
+git add static/md/home.md
+
+confirm master
+
+git commit static/md/home.md -m "update front page for LuaRocks $v"
+git push
+
+#######################################
+# luarocks.wiki
+#######################################
+
+[ -e ../luarocks.wiki ] || {
+ cd ..
+ git clone ssh://git@github.com/luarocks/luarocks.wiki.git
+}
+
+if [ -e ../luarocks.wiki ]
+then
+ cd ../luarocks.wiki
+ git pull
+else
+ cd ..
+ git clone ssh://git@github.com/luarocks/luarocks.wiki.git
+ cd luarocks.wiki
+fi
+
+sed -i "s,Latest release: .*,Latest release: '''LuaRocks $v''' - '$(date +'%d/%b/%Y')'," Download.mediawiki
+
+sed -i "s,/luarocks-[0-9.]*[0-9],/luarocks-$v,g" Download.mediawiki
+
+gawk '
+BEGIN {
+ print "'\'\'\''Version '$v\'\'\'' - '$(date +'%d/%b/%Y')' - [http://luarocks.org/releases/luarocks-'$v'.tar.gz Source tarball for Unix] -"
+ print "[http://luarocks.org/releases/luarocks-'$v'-windows-32.zip Windows binary (32-bit)] -"
+ print "[http://luarocks.org/releases/luarocks-'$v'-windows-64.zip Windows binary (64-bit)] -"
+ print "[http://luarocks.org/releases/luarocks-'$v'-linux-x86_64.zip Linux binary (x86_64)] -"
+ print "[http://luarocks.github.io/luarocks/releases other files]"
+ print ""
+}
+// {
+ print
+}
+' "Release-history.mediawiki" > "Release-history.mediawiki.1"
+mv "Release-history.mediawiki.1" "Release-history.mediawiki"
+
+git add "Download.mediawiki"
+git add "Release-history.mediawiki"
+git add "Installation-instructions-for-Unix.md"
+
+confirm master
+
+git commit -av -m "Release $v"
+git push