* Split win32/64 innosetup stuff * Install wine in CI * CI: kxstudio bionic dedicated repo is needed * Test if we can run wine in CI Signed-off-by: falkTX <falktx@falktx.com> * Fix experiment Signed-off-by: falkTX <falktx@falktx.com> * Enable normal CI stuff again, with a before-deploy step Signed-off-by: falkTX <falktx@falktx.com> * Enable deploy stuff Signed-off-by: falkTX <falktx@falktx.com> * Tests for deploy Signed-off-by: falkTX <falktx@falktx.com> * init wine early * dont build libs for now while checking CI stuff * Cache apt archives; Create dirs for plugin build * More attempts * Cleanup before-install * Try to help cache things * Cache things in the proper place; try win32 builds too * Different cache strategy * Tweak cache * Fix up * ignored cache for now * More cache tweaks * Enable xvfb for win builds * Try to disable winegecko dialog * Use encrypted token for deploys Signed-off-by: falkTX <falktx@falktx.com> * Use old skip_cleanup flag Signed-off-by: falkTX <falktx@falktx.com> * Enable everything for a final test build Signed-off-by: falkTX <falktx@falktx.com> * Remove lv2-only workaround Signed-off-by: falkTX <falktx@falktx.com> * CI: only enable on tags Signed-off-by: falkTX <falktx@falktx.com>tags/v1.0
@@ -31,6 +31,8 @@ jobs: | |||||
env: | env: | ||||
- TARGET="win32" | - TARGET="win32" | ||||
- PLUGINS="abgate artyfx caps fomp mda" | - PLUGINS="abgate artyfx caps fomp mda" | ||||
services: | |||||
- xvfb | |||||
# linux with win64 cross-compilation | # linux with win64 cross-compilation | ||||
- os: linux | - os: linux | ||||
@@ -38,6 +40,8 @@ jobs: | |||||
env: | env: | ||||
- TARGET="win64" | - TARGET="win64" | ||||
- PLUGINS="abgate artyfx caps fomp mda" | - PLUGINS="abgate artyfx caps fomp mda" | ||||
services: | |||||
- xvfb | |||||
before_install: | before_install: | ||||
- bash ${TRAVIS_BUILD_DIR}/.travis/before_install.sh | - bash ${TRAVIS_BUILD_DIR}/.travis/before_install.sh | ||||
@@ -49,6 +53,19 @@ script: | |||||
- bash ${TRAVIS_BUILD_DIR}/bootstrap.sh ${TARGET} | - bash ${TRAVIS_BUILD_DIR}/bootstrap.sh ${TARGET} | ||||
- bash ${TRAVIS_BUILD_DIR}/build-plugins.sh ${TARGET} ${PLUGINS} | - bash ${TRAVIS_BUILD_DIR}/build-plugins.sh ${TARGET} ${PLUGINS} | ||||
before_deploy: | |||||
- bash ${TRAVIS_BUILD_DIR}/pack-plugins.sh ${TARGET} ${PLUGINS} | |||||
deploy: | |||||
provider: releases | |||||
api_key: | |||||
secure: "xKXvMWEvj92IsFINpGlYEJeidLRoTeLIwrWVO06UrNNVCPiWC9z64Xthx/0xqQEv+2PA5GLkh9lnTm7aqQKbMNiVj4sQCcg3sVXEhkGkr27KNjHuQiFao+IeotU6bVTObzGhNR+US3LkRK9RSSvnmDBSUQB16+YgG6PZyXH7mQfoLycQQ8z24hLc4P2gGXbgd23viqZVxBh15HBm8jSm0q5Y5JZ2D/ETQWIijv+Cd7f3Q4j989Q4ZULiDyPs6gMR6Klr85Z8iNXEZRCw/dJ800IrWV9tetJFZFVOG2nWATPSFD9L1DLlJtD0tPJjk/n7DpUEivdrrLgm2C1MaTfDWQU7OOktkcNv6oUB++hWqD/d9bj1teSu9lrUkAS4QPWGWgsMQH/eWquoS6vQOE7ERAHTDgbsS1aPxnuWyG2lyefbSEJCXBOpbcWLAfAr3cdkS+QhFHZzKvZLwJZFkKR0FEKKPkt+CViLmtSbeM7uFRhX3B4uA9EByZonlvupgKfyt/WKoqpsb1hF16tVrZOmTFf2/btLOw8PUD1opAx0aXjH+XcWH6y93wsP41E3VMO/gc8jc7npa+JsMDXaHFf/DMQvj9rVF8deHoshx8Sl3n0RpEhMyV+lXKKfewryqnfWNGak7wNQQhFr4Xqv6mleBFAX1Miy12KkzYxltfwi53o=" | |||||
file_glob: true | |||||
file: setup/inno/PawPaw-*.exe | |||||
skip_cleanup: true | |||||
on: | |||||
tags: true | |||||
#notifications: | #notifications: | ||||
#email: true | #email: true | ||||
#irc: "ircs://chat.freenode.net:7070/#kxstudio" | #irc: "ircs://chat.freenode.net:7070/#kxstudio" |
@@ -5,6 +5,16 @@ set -e | |||||
sudo add-apt-repository -y ppa:kxstudio-debian/kxstudio | sudo add-apt-repository -y ppa:kxstudio-debian/kxstudio | ||||
sudo add-apt-repository -y ppa:kxstudio-debian/toolchain | sudo add-apt-repository -y ppa:kxstudio-debian/toolchain | ||||
if [ "${TARGET}" = "win32" ]; then | |||||
sudo dpkg --add-architecture i386 | |||||
fi | |||||
if [ "${TARGET}" = "win32" ] || [ "${TARGET}" = "win64" ]; then | |||||
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - | |||||
sudo apt-add-repository -y 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' | |||||
sudo add-apt-repository -y ppa:kxstudio-debian/ubuntus | |||||
fi | |||||
sudo apt-get update -qq | sudo apt-get update -qq | ||||
sudo apt-get install kxstudio-repos | sudo apt-get install kxstudio-repos | ||||
sudo apt-get update -qq | sudo apt-get update -qq |
@@ -2,9 +2,15 @@ | |||||
set -e | set -e | ||||
# Special handling for caching deb archives | |||||
if [ "$(ls ${HOME}/PawPawBuilds/debs | wc -l)" -ne 0 ]; then | |||||
sudo cp ${HOME}/PawPawBuilds/debs/*.deb /var/cache/apt/archives/ | |||||
fi | |||||
# common | # common | ||||
sudo apt-get install -y build-essential curl cmake jq | sudo apt-get install -y build-essential curl cmake jq | ||||
# specific | |||||
if [ "${TARGET}" = "linux" ]; then | if [ "${TARGET}" = "linux" ]; then | ||||
sudo apt-get install -y libglib2.0-dev | sudo apt-get install -y libglib2.0-dev | ||||
@@ -26,9 +32,12 @@ elif [ "${TARGET}" = "macos-old" ]; then | |||||
popd | popd | ||||
elif [ "${TARGET}" = "win32" ]; then | elif [ "${TARGET}" = "win32" ]; then | ||||
sudo apt-get install -y mingw-w64 binutils-mingw-w64-i686 g++-mingw-w64-i686 | |||||
sudo apt-get install -y mingw-w64 binutils-mingw-w64-i686 g++-mingw-w64-i686 winehq-stable wine-binfmt | |||||
elif [ "${TARGET}" = "win64" ]; then | elif [ "${TARGET}" = "win64" ]; then | ||||
sudo apt-get install -y mingw-w64 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 | |||||
sudo apt-get install -y mingw-w64 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 winehq-stable wine-binfmt | |||||
fi | fi | ||||
# Special handling for caching deb archives | |||||
sudo mv /var/cache/apt/archives/*.deb ${HOME}/PawPawBuilds/debs/ |
@@ -32,6 +32,10 @@ function download_and_install_innosetup { | |||||
curl -L https://jrsoftware.org/download.php/is.exe?site=2 -o "${dlfile}" | curl -L https://jrsoftware.org/download.php/is.exe?site=2 -o "${dlfile}" | ||||
fi | fi | ||||
if [ ! -d "${pkgdir}"/drive_c ]; then | |||||
env WINEARCH="${PAWPAW_TARGET}" WINEDLLOVERRIDES="mscoree,mshtml=" WINEPREFIX="${pkgdir}" wineboot -u | |||||
fi | |||||
if [ ! -f "${pkgdir}"/drive_c/InnoSeup/ISCC.exe ]; then | if [ ! -f "${pkgdir}"/drive_c/InnoSeup/ISCC.exe ]; then | ||||
env WINEARCH="${PAWPAW_TARGET}" WINEPREFIX="${pkgdir}" wine "${dlfile}" /allusers /dir=C:\\InnoSeup /nocancel /norestart /verysilent | env WINEARCH="${PAWPAW_TARGET}" WINEPREFIX="${pkgdir}" wine "${dlfile}" /allusers /dir=C:\\InnoSeup /nocancel /norestart /verysilent | ||||
fi | fi | ||||
@@ -41,7 +45,7 @@ function create_innosetup_exe { | |||||
local pkgdir="${PAWPAW_BUILDDIR}/innosetup-6.0.5" | local pkgdir="${PAWPAW_BUILDDIR}/innosetup-6.0.5" | ||||
local iscc="${pkgdir}/drive_c/InnoSeup/ISCC.exe" | local iscc="${pkgdir}/drive_c/InnoSeup/ISCC.exe" | ||||
env WINEARCH="${PAWPAW_TARGET}" WINEPREFIX="${pkgdir}" wine "${iscc}" setup/inno/plugins.iss | |||||
env WINEARCH="${PAWPAW_TARGET}" WINEPREFIX="${pkgdir}" wine "${iscc}" "setup/inno/${PAWPAW_TARGET}.iss" | |||||
} | } | ||||
# --------------------------------------------------------------------------------------------------------------------- | # --------------------------------------------------------------------------------------------------------------------- | ||||
@@ -0,0 +1,18 @@ | |||||
[Setup] | |||||
AppName=PawPaw | |||||
AppVersion=0.0.0 | |||||
DefaultDirName={commonpf32}\PawPaw | |||||
DisableDirPage=yes | |||||
OutputBaseFilename=PawPaw-win32-0.0.0 | |||||
OutputDir=. | |||||
UsePreviousAppDir=no | |||||
[Types] | |||||
Name: "full"; Description: "Full installation" | |||||
Name: "custom"; Description: "Custom installation"; Flags: iscustom | |||||
[Components] | |||||
#include "Z:\tmp\pawpaw\components.txt" | |||||
[Files] | |||||
#include "Z:\tmp\pawpaw\lv2bundles.txt" |
@@ -2,9 +2,9 @@ | |||||
ArchitecturesInstallIn64BitMode=x64 | ArchitecturesInstallIn64BitMode=x64 | ||||
AppName=PawPaw | AppName=PawPaw | ||||
AppVersion=0.0.0 | AppVersion=0.0.0 | ||||
DefaultDirName={autopf}\PawPaw | |||||
DefaultDirName={commonpf64}\PawPaw | |||||
DisableDirPage=yes | DisableDirPage=yes | ||||
OutputBaseFilename=PawPaw-0.0.0 | |||||
OutputBaseFilename=PawPaw-win64-0.0.0 | |||||
OutputDir=. | OutputDir=. | ||||
UsePreviousAppDir=no | UsePreviousAppDir=no | ||||