diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c509f8d..337f5c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -163,10 +163,25 @@ jobs: id: create_release run: | set -xe - NAME="Auto-Build $(date +'%Y-%m-%d %H:%M')" + RELDATE="$(date +'%Y-%m-%d %H:%M')" + NAME="Auto-Build $RELDATE" TAGNAME="autobuild-$(date +'%Y-%m-%d-%H-%M')" hub release create $(for a in artifacts/*.{zip,tar.xz}; do echo -a $a; done) -m "$NAME" -t "master" "$TAGNAME" echo "::set-output name=tag_name::${TAGNAME}" + echo "::set-output name=rel_date::${RELDATE}" + env: + GITHUB_TOKEN: ${{ github.token }} + - name: Update Latest + run: | + set -xe + mkdir latest_artifacts + ./util/repack_latest.sh latest_artifacts artifacts/*.{zip,tar.xz} + NAME="Latest Auto-Build (${{ steps.create_release.outputs.rel_date }})" + TAGNAME="latest" + hub release delete "$TAGNAME" || true + git tag -d "$TAGNAME" || true + git push --delete origin "$TAGNAME" || true + hub release create $(for a in latest_artifacts/*; do echo -a $a; done) -m "$NAME" -t "master" "$TAGNAME" env: GITHUB_TOKEN: ${{ github.token }} - name: Update Wiki diff --git a/util/repack_latest.sh b/util/repack_latest.sh new file mode 100755 index 0000000..919603f --- /dev/null +++ b/util/repack_latest.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e + +if [[ $# -lt 2 ]]; then + echo "Missing arguments" + exit -1 +fi + +RELEASE_DIR="$(realpath "$1")" +shift + +rm -rf repack_dir +mkdir repack_dir +trap "rm -rf repack_dir" EXIT + +while [[ $# -gt 0 ]]; do + INPUT="$1" + shift + + rm -rf repack_dir/* + + if [[ $INPUT == *.zip ]]; then + unzip "$INPUT" -d repack_dir + elif [[ $INPUT == *.tar.xz ]]; then + tar xvaf "$INPUT" -C repack_dir + else + echo "Unknown input file type: $INPUT" + exit 1 + fi + + cd repack_dir + + INAME="$(echo ffmpeg-*)" + ONAME="ffmpeg-latest-$(cut -d- -f5- <<<"$INAME")" + mv "$INAME" "$ONAME" + + if [[ $INPUT == *.zip ]]; then + zip -9 -r "$RELEASE_DIR/$ONAME.zip" "$ONAME" + elif [[ $INPUT == *.tar.xz ]]; then + tar cvJf "$RELEASE_DIR/$ONAME.tar.xz" "$ONAME" + fi + + cd .. +done