Add MSVC builder to CI

This commit is contained in:
Jonas Kvinge 2022-02-08 22:00:55 +01:00
parent b6f5a5712b
commit 9c2c668a04
1 changed files with 534 additions and 0 deletions

View File

@ -1473,6 +1473,516 @@ jobs:
working-directory: build
run: makensis strawberry.nsi
build-windows-msvc:
name: Build Windows MSVC
runs-on: windows-2019
steps:
- uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86_64
toolset: 14.29
- uses: actions/checkout@v1.2.0
- name: Download Boost
uses: suisei-cn/actions-download-file@v1
with:
url: "Boost [this](https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.zip)!"
target: downloads/
auto-match: true
- name: Download Qt Base
uses: suisei-cn/actions-download-file@v1
with:
url: "Qt Base [this](https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_623/qt.qt6.623.win64_msvc2019_64/6.2.3-0-202201260729qtbase-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z)!"
target: downloads/
auto-match: true
- name: Download Qt Tools
uses: suisei-cn/actions-download-file@v1
with:
url: "Qt Tools [this](https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_623/qt.qt6.623.win64_msvc2019_64/6.2.3-0-202201260729qttools-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z)!"
target: downloads/
auto-match: true
- name: Download Qt OpenSSL
uses: suisei-cn/actions-download-file@v1
with:
url: "Qt OpenSSL [this](https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_openssl_x64/qt.tools.openssl.win_x64/1.1.1-10openssl_1.1.1j_prebuild_x64.7z)!"
target: downloads/
auto-match: true
- name: Download SQLite
uses: suisei-cn/actions-download-file@v1
with:
url: "SQLite [this](https://sqlite.org/2022/sqlite-autoconf-3370200.tar.gz)!"
target: downloads/
auto-match: true
- name: Download glib-networking
uses: suisei-cn/actions-download-file@v1
with:
url: "glib-networking [this](https://download.gnome.org/sources/glib-networking/2.62/glib-networking-2.62.4.tar.xz)!"
target: downloads/
auto-match: true
- name: Download GStreamer
uses: suisei-cn/actions-download-file@v1
with:
url: "GStreamer [this](https://gstreamer.freedesktop.org/data/pkg/windows/1.20.0/msvc/gstreamer-1.0-msvc-x86_64-1.20.0.msi)!"
target: downloads/
auto-match: true
- name: Download GStreamer Devel
uses: suisei-cn/actions-download-file@v1
with:
url: "GStreamer Devel [this](https://gstreamer.freedesktop.org/data/pkg/windows/1.20.0/msvc/gstreamer-1.0-devel-msvc-x86_64-1.20.0.msi)!"
target: downloads/
auto-match: true
- name: Download GnuTLS
uses: suisei-cn/actions-download-file@v1
with:
url: "GnutTLS [this](https://github.com/ShiftMediaProject/gnutls/releases/download/3.7.2/libgnutls_3.7.2_msvc14.zip)!"
target: downloads/
auto-match: true
- name: Download GnuTLS PC File
uses: suisei-cn/actions-download-file@v1
with:
url: "GnutTLS PC File [this](https://files.strawberrymusicplayer.org/gnutls.pc)!"
target: downloads/
auto-match: true
- name: Download TagLib
uses: suisei-cn/actions-download-file@v1
with:
url: "TagLib [this](https://taglib.org/releases/taglib-1.12.tar.gz)!"
target: downloads/
auto-match: true
- name: Download FFTW
uses: suisei-cn/actions-download-file@v1
with:
url: "FFTW [this](https://fftw.org/pub/fftw/fftw-3.3.5-dll64.zip)!"
target: downloads/
auto-match: true
- name: Download Chromaprint
uses: suisei-cn/actions-download-file@v1
with:
url: "Chromaprint [this](https://github.com/acoustid/chromaprint/releases/download/v1.5.1/chromaprint-1.5.1.tar.gz)!"
target: downloads/
auto-match: true
- name: Download Protobuf
uses: suisei-cn/actions-download-file@v1
with:
url: "Protobuf [this](https://files.strawberrymusicplayer.org/protobuf-3.19.4-msvc.zip)!"
# url: "Protobuf [this](https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/protobuf-cpp-3.19.4.zip)!"
target: downloads/
auto-match: true
- name: Create sources directory
run: mkdir sources
- name: Download qtsparkle
shell: bash
working-directory: sources
run: git clone https://github.com/davidsansome/qtsparkle qtsparkle-git
- name: Download qtsparkle pc file
shell: bash
working-directory: sources/qtsparkle-git
run: curl -O -L https://files.strawberrymusicplayer.org/qtsparkle-qt6.pc
- name: Download LockedList plugin for NSIS
uses: suisei-cn/actions-download-file@v1
with:
url: "LockedList [this](https://nsis.sourceforge.io/mediawiki/images/d/d3/LockedList.zip)!"
target: downloads/
auto-match: true
- name: Extract NSIS LockedList plugin
run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/LockedList.zip"
- name: Copy NSIS LockedList plugin
run: |
copy "${{github.workspace}}/NSIS_Plugins/Plugins/LockedList64.dll" "C:/Program Files (x86)/NSIS/Plugins/"
copy "${{github.workspace}}/NSIS_Plugins/Plugins/x86-unicode/LockedList.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/"
- name: Grant Full Access to c:\windows\temp directory
run: icacls "C:\Windows\Temp" /q /c /t /grant Users:F /T
- name: Install GStreamer
working-directory: downloads
run: msiexec /a gstreamer-1.0-msvc-x86_64-1.20.0.msi /passive /qn
- name: Wait for GStreamer installation to complete
run: Start-Sleep -s 20
shell: powershell
- name: Install GStreamer Devel
working-directory: downloads
run: msiexec /a gstreamer-1.0-devel-msvc-x86_64-1.20.0.msi /passive /qn
- name: Wait for GStreamer Devel installation to complete
run: Start-Sleep -s 30
shell: powershell
- name: Extract Boost
working-directory: sources
run: 7z x ..\downloads\boost_1_78_0.zip
- name: Copy Boost
shell: bash
working-directory: sources
run: cp -r boost_1_78_0/boost /c/gstreamer/1.0/msvc_x86_64/include/
- name: Extract Qt
working-directory: C:\
shell: bash
run: |
mkdir qt
cd qt
7z x "${{github.workspace}}/downloads/6.2.3-0-202201260729qtbase-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z"
7z x "${{github.workspace}}/downloads/6.2.3-0-202201260729qttools-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z"
7z x "${{github.workspace}}/downloads/1.1.1-10openssl_1.1.1j_prebuild_x64.7z"
- name: Extract GnuTLS
run: |
mkdir gnutls
cd gnutls
7z x "${{github.workspace}}/downloads/libgnutls_3.7.2_msvc14.zip"
xcopy /s /y bin\x64\*.* c:\gstreamer\1.0\msvc_x86_64\bin\
xcopy /s /y lib\x64\*.* c:\gstreamer\1.0\msvc_x86_64\lib\
xcopy /s /y include\* c:\gstreamer\1.0\msvc_x86_64\include\
xcopy /s /y include\* c:\gstreamer\1.0\msvc_x86_64\include\
copy "${{github.workspace}}/downloads/gnutls.pc" c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig\
- name: Extract TagLib
working-directory: sources
shell: bash
run: tar -xvf ../downloads/taglib-1.12.tar.gz
- name: Extract Chromaprint
working-directory: sources
shell: bash
run: tar -xvf ../downloads/chromaprint-1.5.1.tar.gz
- name: Extract glib-networking
working-directory: sources
shell: bash
run: tar -xvf ../downloads/glib-networking-2.62.4.tar.xz
- name: Extract FFTW
run: |
mkdir fftw
cd fftw
7z x "${{github.workspace}}/downloads/fftw-3.3.5-dll64.zip"
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
xcopy /s /y *.dll c:\gstreamer\1.0\msvc_x86_64\bin\
xcopy /s /y *.lib c:\gstreamer\1.0\msvc_x86_64\lib\
xcopy /s /y *.h c:\gstreamer\1.0\msvc_x86_64\include\
#- name: Compile Protobuf
# env:
# CL: "/MP"
# working-directory: sources/protobuf-3.19.4
# run: |
# cd cmake
# mkdir build
# cd build
# cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/protobuf" -Dprotobuf_BUILD_TESTS=OFF
# nmake
# cmake --install .
# copy ..\cmake\build\protobuf.pc c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig\
- name: Extract Protobuf
run: |
7z x downloads\protobuf-3.19.4-msvc.zip
xcopy /s /y protobuf-3.19.4-msvc\bin\*.dll c:\gstreamer\1.0\msvc_x86_64\bin\
xcopy /s /y protobuf-3.19.4-msvc\bin\*.exe c:\gstreamer\1.0\msvc_x86_64\bin\
xcopy /s /y protobuf-3.19.4-msvc\lib\*.lib c:\gstreamer\1.0\msvc_x86_64\lib\
xcopy /s /y protobuf-3.19.4-msvc\lib\pkgconfig\*.pc c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig\
xcopy /s /y protobuf-3.19.4-msvc\include\*.* c:\gstreamer\1.0\msvc_x86_64\include\
- name: Extract SQLite
working-directory: sources
shell: bash
run: tar -xvf ../downloads/sqlite-autoconf-3370200.tar.gz
- name: Compile SQlite
env:
CL: "/MP"
working-directory: sources/sqlite-autoconf-3370200
run: cl shell.c sqlite3.c -Fe:sqlite3.exe
#cl -DSQLITE_API="__declspec(dllexport)" sqlite3.c -link -dll -out:sqlite3.dll
# - name: Copy SQLite
# working-directory: sources/sqlite-autoconf-3370200
# run: |
# copy *.h c:\gstreamer\1.0\msvc_x86_64\include\
# copy *.lib c:\gstreamer\1.0\msvc_x86_64\lib\
# copy *.dll c:\gstreamer\1.0\msvc_x86_64\bin\
# copy *.def c:\gstreamer\1.0\msvc_x86_64\lib\
# copy *.def c:\gstreamer\1.0\msvc_x86_64\bin\
- name: Compile TagLib
env:
CL: "/MP"
working-directory: sources/taglib-1.12
run: |
mkdir build
cd build
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="c:\gstreamer\1.0\msvc_x86_64" -DBUILD_SHARED_LIBS=ON
nmake
cmake --install .
- name: Compile Chromaprint
env:
CL: "/MP"
working-directory: sources/chromaprint-1.5.1
run: |
mkdir build
cd build
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DFFMPEG_ROOT=C:\gstreamer\1.0\msvc_x86_64 -DCMAKE_INSTALL_PREFIX=C:\gstreamer\1.0\msvc_x86_64
nmake
cmake --install .
- name: Update PATH
run: echo "c:\gstreamer\1.0\msvc_x86_64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Compile glib-networking
env:
CL: "/MP"
working-directory: sources/glib-networking-2.62.4
run: |
echo "c:\gstreamer\1.0\msvc_x86_64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
pip3 install meson
meson -Dgnutls=enabled -Dpkg_config_path=c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig build
cd build
ninja
- name: Compile qtsparkle
env:
CL: "/MP"
working-directory: sources/qtsparkle-git
run: |
copy qtsparkle-qt6.pc c:\gstreamer\1.0\msvc_x86_64\lib\pkgconfig\
mkdir build
cd build
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_QT6=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_PREFIX_PATH=c:\qt\6.2.3\msvc2019_64\lib\cmake -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/qtsparkle"
nmake
cmake --install .
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_QT6=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH=c:\qt\6.2.3\msvc2019_64\lib\cmake -DCMAKE_INSTALL_PREFIX="${{github.workspace}}/qtsparkle"
nmake
cmake --install .
- name: Remove find_package(Boost)
shell: bash
run: sed -i 's/find_package(Boost.*//g' CMakeLists.txt
- name: Create Build Environment
run: cmake -E make_directory build
- name: Run CMake
working-directory: build
run: >
cmake ..
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_PREFIX_PATH=c:\qt\6.2.3\msvc2019_64\lib\cmake
-DBUILD_WITH_QT6=ON
-DBUILD_WERROR=OFF
-DARCH=x86_64
-DENABLE_WIN32_CONSOLE=OFF
-DENABLE_DBUS=OFF
-DENABLE_LIBGPOD=OFF
-DENABLE_LIBMTP=OFF
-DUSE_TAGLIB=ON
-DPKG_CONFIG_EXECUTABLE=C:/gstreamer/1.0/msvc_x86_64/bin/pkg-config.exe
-DGNUTLS_LIBRARY=c:/gstreamer/1.0/msvc_x86_64/lib/gnutls.lib
-DGNUTLS_INCLUDE_DIR=c:/gstreamer/1.0/msvc_x86_64/include
-DGNUTLS_INCLUDE_DIRS=c:/gstreamer/1.0/msvc_x86_64/include
-DBoost_INCLUDE_DIR=c:/gstreamer/1.0/msvc_x86_64/include
-DBoost_INCLUDE_DIRS=c:/gstreamer/1.0/msvc_x86_64/include
-DProtobuf_LIBRARY=c:/gstreamer/1.0/msvc_x86_64/lib/libprotobuf.lib
-DProtobuf_INCLUDE_DIR=c:/gstreamer/1.0/msvc_x86_64/include
-DProtobuf_INCLUDE_DIRS=c:/gstreamer/1.0/msvc_x86_64/include
-DPROTOBUF_PROTOC_EXECUTABLE=c:/gstreamer/1.0/msvc_x86_64/bin/protoc.exe
-DSQLITE_INCLUDE_DIRS=c:/gstreamer/1.0/msvc_x86_64/include
-DSQLITE_LIBRARY_DIRS=c:/gstreamer/1.0/msvc_x86_64/lib
-DFFTW3_DIR=c:\gstreamer\1.0\msvc_x86_64
-DQTSPARKLE_INCLUDE_DIRS="${{github.workspace}}/qtsparkle/include"
- name: Copy qtsparkle header
working-directory: build
run: xcopy /s /y "${{github.workspace}}\qtsparkle\include"
- name: Run Make
env:
CL: "/MP"
working-directory: build
run: cmake --build . --config Release --parallel $(nproc)
- name: list files
working-directory: build
run: dir
- name: Copy executables
working-directory: build
run: copy release\*.exe .
- name: Copy extra binaries
working-directory: build
run: |
copy c:\qt\tools\openssl\win_x64\bin\libssl-1_1-x64.dll
copy c:\qt\tools\openssl\win_x64\bin\libcrypto-1_1-x64.dll
copy "${{github.workspace}}/sources/sqlite-autoconf-3370200/sqlite3.exe"
copy c:\gstreamer\1.0\msvc_x86_64\bin\soup-2.4-1.dll
copy c:\gstreamer\1.0\msvc_x86_64\bin\gst-launch-1.0.exe
copy c:\gstreamer\1.0\msvc_x86_64\bin\gst-discoverer-1.0.exe
- name: Create directories
working-directory: build
run: |
mkdir gio-modules
mkdir platforms
mkdir styles
mkdir tls
mkdir sqldrivers
mkdir imageformats
mkdir gstreamer-plugins
mkdir nsisplugins
- name: Copy GIO modules
working-directory: build
run: copy "${{github.workspace}}/sources/glib-networking-2.62.4/build/tls/gnutls/giognutls.dll" ./gio-modules/
- name: Copy Qt platform plugins
working-directory: build
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\platforms\qwindows.dll .\platforms\
- name: Copy Qt styles
working-directory: build
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\styles\qwindowsvistastyle.dll .\styles\
- name: Copy Qt TLS plugins
working-directory: build
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\tls\*.dll .\tls\
- name: Copy Qt SQL drivers
working-directory: build
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\sqldrivers\qsqlite.dll .\sqldrivers\
- name: Copy Qt imageformats plugins
working-directory: build
run: copy C:\Qt\6.2.3\msvc2019_64\plugins\imageformats\*.dll .\imageformats\
- name: Copy gstreamer plugins
working-directory: build
run: |
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstapp.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstcoreelements.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudioconvert.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudiofx.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudiomixer.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudioparsers.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudiorate.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudioresample.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaudiotestsrc.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstautodetect.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstplayback.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstvolume.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstspectrum.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstequalizer.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstreplaygain.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gsttypefindfunctions.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstgio.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstdirectsound.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwasapi.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwasapi2.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstapetag.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gsticydemux.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstid3demux.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gsttcp.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstudp.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstsoup.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstrtp.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstrtsp.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstflac.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwavparse.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwavpack.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstogg.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstvorbis.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstopus.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstopusparse.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstspeex.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstlame.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstaiff.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstisomp4.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstasf.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstasfmux.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstlibav.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstdash.dll .\gstreamer-plugins\
copy C:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstxingmux.dll .\gstreamer-plugins\
- name: Download copydlldeps.sh
shell: bash
working-directory: build
run: curl -O -L https://raw.githubusercontent.com/strawberrymusicplayer/strawberry-mxe/master/tools/copydlldeps.sh
- name: Copy dependencies
shell: bash
working-directory: build
run: >
./copydlldeps.sh
-c
-d .
-F .
-F ./platforms
-F ./styles
-F ./tls
-F ./sqldrivers
-F ./imageformats
-F ./gio-modules
-F ./gstreamer-plugins
-R /c/qt/6.2.3/msvc2019_64/bin
-R /c/gstreamer/1.0/msvc_x86_64
-R "${{github.workspace}}/qtsparkle/bin"
- name: Strip binaries
shell: bash
working-directory: build
run: find . -type f \( -iname \*.dll -o -iname \*.exe \) -exec strip {} \;
- name: Copy nsis files
working-directory: build
run: |
copy ..\dist\windows\*.nsi .
copy ..\dist\windows\*.nsh .
copy ..\dist\windows\*.ico .
- name: Copy COPYING license file
working-directory: build
run: copy ..\COPYING .
- name: list files
working-directory: build
run: dir
- name: Create nsis installer
working-directory: build
run: makensis strawberry.nsi
- uses: actions/upload-artifact@v2
with:
name: upload-windows
path: build/StrawberrySetup*.exe
upload-macos:
name: Upload macOS DMG
@ -1498,6 +2008,30 @@ jobs:
done
upload-windows:
name: Upload Windows Setup
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
needs:
- build-windows-msvc
steps:
- uses: actions/checkout@v1.2.0
- uses: actions/download-artifact@v2
with:
path: uploads
- name: Install SSH keys
uses: shimataro/ssh-key-action@v2
with:
known_hosts: ${{ secrets.KNOWN_HOSTS2 }}
key: ${{ secrets.SSH_KEY }}
- name: rsync
run: |
set -x
for i in $(find uploads -type f -name 'StrawberrySetup*.exe'); do
rsync -e "ssh -p 50220 -o StrictHostKeyChecking=no" -va $i travis@echoes.jkvinge.net:/home/travis/builds/windows/
done
build-freebsd:
name: Build FreeBSD
runs-on: macos-10.15