Create build-windows-unstable.yml
This commit is contained in:
135
.github/workflows/build-windows-unstable.yml
vendored
Normal file
135
.github/workflows/build-windows-unstable.yml
vendored
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user