pi eingefügt

This commit is contained in:
georg0480
2026-02-04 04:19:16 +01:00
parent 9ebc15a29c
commit f4d724f776
11 changed files with 212 additions and 778 deletions

View File

@@ -2,143 +2,67 @@ name: build-mailadler-windows
on:
workflow_dispatch:
schedule:
# nightly
- cron: '0 8 * * *'
push:
branches: [main, master]
paths:
- 'src/**'
- 'CMakeLists.txt'
- '.github/workflows/build-windows.yml'
pull_request:
branches: [main, master]
env:
QT_VERSION: 6.6.3
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-osslsigncode
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-gcc-fortran
mingw-w64-x86_64-gettext-tools
mingw-w64-x86_64-harfbuzz
mingw-w64-x86_64-lame
mingw-w64-x86_64-libarchive
mingw-w64-x86_64-libepoxy
mingw-w64-x86_64-libexif
mingw-w64-x86_64-libimagequant
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-onevpl
mingw-w64-x86_64-openblas
mingw-w64-x86_64-openssl
mingw-w64-x86_64-opus
mingw-w64-x86_64-potrace
mingw-w64-x86_64-python-pip
mingw-w64-x86_64-rubberband
mingw-w64-x86_64-sox
mingw-w64-x86_64-svt-av1
mingw-w64-x86_64-vid.stab
mingw-w64-x86_64-x264
mingw-w64-x86_64-x265
mingw-w64-x86_64-zimg
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{ env.QT_VERSION }}
arch: win64_msvc2019_64
modules: 'qtwebsockets'
cache: true
- name: Configure
run: |
cmake -B build -G "Visual Studio 17 2022" -A x64 `
-DCMAKE_BUILD_TYPE=Release
- name: Build
shell: msys2 {0}
run: cmake --build build --config Release --parallel
- name: Prepare version
shell: bash
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=$VERSION
pushd "$HOME"
mkdir Qt
cd Qt
echo Downloading Qt
curl -kLO --no-progress-meter https://s3.amazonaws.com/misc.meltymedia/mailadler-build/qt-6.10.1-x64-mingw.txz
echo Extracting Qt
tar -xJf qt-6.10.1-x64-mingw.txz
rm qt-6.10.1-x64-mingw.txz
cd ..
echo Downloading a few prebuilt dependencies
curl -kLO --no-progress-meter https://s3.amazonaws.com/misc.meltymedia/mailadler-build/mlt-prebuilt-mingw64-v6.txz
echo Extracting prebuilt dependencies
tar -xJf mlt-prebuilt-mingw64-v6.txz
rm mlt-prebuilt-mingw64-v6.txz
CHECKOUT_DIR=$(popd)
popd
echo Running the build script
echo INSTALL_DIR=\"$CHECKOUT_DIR/build\"
echo INSTALL_DIR=\"$CHECKOUT_DIR/build\" > build-mailadler.conf
echo mailadler_VERSION=\"$VERSION\" >> build-mailadler.conf
bash scripts/build-mailadler-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/mailadler-build/CodeSignCertificates2023.p12 ./ --no-progress
aws s3 cp s3://misc.meltymedia/mailadler-build/CodeSignCertificates.pass ./ --no-progress
for EXE in mailadler/*.exe; do
echo Signing ${EXE}
osslsigncode sign -pkcs12 CodeSignCertificates2023.p12 -readpass CodeSignCertificates.pass -n "mailadler" -i "https://www.meltytech.com" -t "http://timestamp.digicert.com" -in ${EXE} -out ${EXE}-signed
mv ${EXE}-signed ${EXE}
done
echo Packaging the portable zip
zip -gr mailadler-win64-$FILENAME_VERSION.zip mailadler
echo Packaging the installer
PATH="$HOME/bin:$PATH"
pushd $HOME/bin
curl -kLO --no-progress-meter https://s3.amazonaws.com/misc.meltymedia/mailadler-build/iscc632.txz
tar -xJf iscc632.txz
popd
echo Extracting installer dependencies
curl -kLO --no-progress-meter https://s3.amazonaws.com/misc.meltymedia/mailadler-build/innosetup-opera-1.txz
tar -xJf innosetup-opera-1.txz
rm innosetup-opera-1.txz
echo Running Inno Setup Compiler
ISCC -Q -O. mailadler.iss
echo Signing the installer
osslsigncode sign -pkcs12 CodeSignCertificates2023.p12 -readpass CodeSignCertificates.pass -n "mailadler Installer" -i "https://www.meltytech.com" -t "http://timestamp.digicert.com" -in mailadler-setup.exe -out mailadler-setup-signed.exe
mv mailadler-setup-signed.exe mailadler-win64-$FILENAME_VERSION.exe
rm mailadler-setup.exe
popd
echo Done
VERSION=$(date +"%y.%-m.%-d")
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Package
shell: pwsh
run: |
$version = "${{ env.VERSION }}"
New-Item -ItemType Directory -Force -Path "mailadler-win64"
Copy-Item -Path "build\src\Release\mailadler.exe" -Destination "mailadler-win64\" -ErrorAction SilentlyContinue
# Deploy Qt dependencies
& "$env:Qt6_DIR\bin\windeployqt.exe" "mailadler-win64\mailadler.exe" 2>$null
Compress-Archive -Path "mailadler-win64\*" -DestinationPath "mailadler-win64-$version.zip"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: windows-portable
path: ./build/mailadler-win64-*.zip
path: mailadler-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/mailadler/ --no-progress
done
- name: Upload to release (on tag)
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: mailadler-win64-*.zip