From 060cb7c20495a2e77c27108ef2e05d81abccede9 Mon Sep 17 00:00:00 2001 From: Georg Dahmen Date: Sat, 31 Jan 2026 16:19:35 +0100 Subject: [PATCH] Create build-windows-unstable --- .github/workflows/build-windows-unstable | 135 +++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 .github/workflows/build-windows-unstable diff --git a/.github/workflows/build-windows-unstable b/.github/workflows/build-windows-unstable new file mode 100644 index 0000000..c980f84 --- /dev/null +++ b/.github/workflows/build-windows-unstable @@ -0,0 +1,135 @@ +name: build-shotcut-windows-unstable + +on: + workflow_dispatch: + schedule: + # nightly + - cron: '0 8 * * *' + +jobs: + build: + if: ${{ github.repository_owner == 'mltframework' }} + runs-on: windows-latest + + steps: + - name: Setup MSYS2 + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + update: true + install: >- + autotools base-devel bzip2 coreutils git gzip tar xz zip + perl-List-MoreUtils perl-XML-Parser + mingw-w64-x86_64-toolchain + mingw-w64-x86_64-cmake + mingw-w64-x86_64-meson + mingw-w64-x86_64-nasm + mingw-w64-x86_64-ninja + mingw-w64-x86_64-nsis + mingw-w64-x86_64-osslsigncode + mingw-w64-x86_64-python-pip + mingw-w64-x86_64-yasm + mingw-w64-x86_64-cairo + mingw-w64-x86_64-eigen3 + mingw-w64-x86_64-dlfcn + mingw-w64-x86_64-fftw + mingw-w64-x86_64-harfbuzz + mingw-w64-x86_64-lame + mingw-w64-x86_64-libepoxy + mingw-w64-x86_64-libexif + mingw-w64-x86_64-libsamplerate + mingw-w64-x86_64-libtheora + mingw-w64-x86_64-libvorbis + mingw-w64-x86_64-libvpx + mingw-w64-x86_64-libwebp + mingw-w64-x86_64-libxml2 + mingw-w64-x86_64-openblas + mingw-w64-x86_64-onevpl + mingw-w64-x86_64-openssl + mingw-w64-x86_64-opus + mingw-w64-x86_64-rubberband + mingw-w64-x86_64-sox + mingw-w64-x86_64-vid.stab + mingw-w64-x86_64-x264 + mingw-w64-x86_64-x265 + mingw-w64-x86_64-libarchive + mingw-w64-x86_64-potrace + mingw-w64-x86_64-libimagequant + mingw-w64-x86_64-python3.11 + + - uses: actions/checkout@v4 + with: + ref: qt6 + + - name: Build + shell: msys2 {0} + run: | + pacman --noconfirm -Rdd mingw-w64-x86_64-aom + echo Preparing version + echo $(date +"%y.%-m.%-d") > VERSION + VERSION=$(cat VERSION) + echo VERSION=$VERSION + FILENAME_VERSION=UNSTABLE-$VERSION + pushd "$HOME" + echo Downloading Qt + mkdir Qt + cd Qt + curl -kLO --no-progress-meter https://s3.amazonaws.com/misc.meltymedia/shotcut-build/qt-6.4.2-x64-mingw810.txz + echo Extracting Qt + tar -xJf qt-6.4.2-x64-mingw810.txz + cd .. + echo Downloading a few prebuilt dependencies + curl -kLO --no-progress-meter https://s3.amazonaws.com/misc.meltymedia/shotcut-build/mlt-prebuilt-mingw64-v5.txz + echo Extracting prebuilt dependencies + tar -xJf mlt-prebuilt-mingw64-v5.txz + CHECKOUT_DIR=$(popd) + popd + echo Running the build script + echo INSTALL_DIR=\"$CHECKOUT_DIR/build\" + echo INSTALL_DIR=\"$CHECKOUT_DIR/build\" > build-shotcut.conf + echo SHOTCUT_VERSION=\"$VERSION\" >> build-shotcut.conf + echo SHOTCUT_HEAD=0 >> build-shotcut.conf + echo SHOTCUT_REVISION=origin/qt6 >> build-shotcut.conf + bash scripts/build-shotcut-msys2.sh + pushd build + echo Installing awscli + pip install awscli + export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY }} + export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_KEY }} + export AWS_DEFAULT_REGION=us-east-1 + echo Downloading code-signing certificates + aws s3 cp s3://misc.meltymedia/shotcut-build/CodeSignCertificates.p12.new ./ --no-progress + aws s3 cp s3://misc.meltymedia/shotcut-build/CodeSignCertificates.pass ./ --no-progress + echo Signing shotcut.exe + osslsigncode sign -pkcs12 CodeSignCertificates.p12.new -readpass CodeSignCertificates.pass -n "Shotcut" -i "https://www.meltytech.com" -t "http://timestamp.digicert.com" -in Shotcut/shotcut.exe -out Shotcut/shotcut-signed.exe + mv Shotcut/shotcut-signed.exe Shotcut/shotcut.exe + echo Signing glaxnimate.exe + osslsigncode sign -pkcs12 CodeSignCertificates.p12.new -readpass CodeSignCertificates.pass -n "Shotcut" -i "https://www.meltytech.com" -t "http://timestamp.digicert.com" -in Shotcut/glaxnimate.exe -out Shotcut/glaxnimate-signed.exe + mv Shotcut/glaxnimate-signed.exe Shotcut/glaxnimate.exe + echo Packaging the portable zip + zip -gr shotcut-win64-$FILENAME_VERSION.zip Shotcut + echo Packaging the installer + makensis shotcut.nsi + echo Signing the installer + osslsigncode sign -pkcs12 CodeSignCertificates.p12.new -readpass CodeSignCertificates.pass -n "Shotcut Installer" -i "https://www.meltytech.com" -t "http://timestamp.digicert.com" -in shotcut-setup.exe -out shotcut-setup-signed.exe + mv shotcut-setup-signed.exe shotcut-win64-$FILENAME_VERSION.exe + rm shotcut-setup.exe + popd + echo Done + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: windows-portable + path: ./build/shotcut-win64-*.zip + + - name: Upload packages to S3 + shell: msys2 {0} + run: | + export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY }} + export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_KEY }} + export AWS_DEFAULT_REGION=us-east-1 + for file in build/*.{exe,zip}; do + echo Uploading "$file" to S3 + aws s3 cp "$file" s3://builds.us.meltytech/shotcut/ --no-progress + done