pi eingefügt
This commit is contained in:
172
.github/workflows/build-windows.yml
vendored
172
.github/workflows/build-windows.yml
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user