Browse Source

CI and deploy work (#1)

* 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
Filipe Coelho GitHub 2 years ago
parent
commit
108cbcfe39
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 63 additions and 5 deletions
  1. +17
    -0
      .travis.yml
  2. +10
    -0
      .travis/before_install.sh
  3. +11
    -2
      .travis/install.sh
  4. +5
    -1
      pack-plugins.sh
  5. +18
    -0
      setup/inno/win32.iss
  6. +2
    -2
      setup/inno/win64.iss

+ 17
- 0
.travis.yml View File

@@ -31,6 +31,8 @@ jobs:
env:
- TARGET="win32"
- PLUGINS="abgate artyfx caps fomp mda"
services:
- xvfb

# linux with win64 cross-compilation
- os: linux
@@ -38,6 +40,8 @@ jobs:
env:
- TARGET="win64"
- PLUGINS="abgate artyfx caps fomp mda"
services:
- xvfb

before_install:
- bash ${TRAVIS_BUILD_DIR}/.travis/before_install.sh
@@ -49,6 +53,19 @@ script:
- bash ${TRAVIS_BUILD_DIR}/bootstrap.sh ${TARGET}
- 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:
#email: true
#irc: "ircs://chat.freenode.net:7070/#kxstudio"

+ 10
- 0
.travis/before_install.sh View File

@@ -5,6 +5,16 @@ set -e
sudo add-apt-repository -y ppa:kxstudio-debian/kxstudio
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 install kxstudio-repos
sudo apt-get update -qq

+ 11
- 2
.travis/install.sh View File

@@ -2,9 +2,15 @@

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
sudo apt-get install -y build-essential curl cmake jq

# specific
if [ "${TARGET}" = "linux" ]; then
sudo apt-get install -y libglib2.0-dev

@@ -26,9 +32,12 @@ elif [ "${TARGET}" = "macos-old" ]; then
popd

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
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

# Special handling for caching deb archives
sudo mv /var/cache/apt/archives/*.deb ${HOME}/PawPawBuilds/debs/

+ 5
- 1
pack-plugins.sh View File

@@ -32,6 +32,10 @@ function download_and_install_innosetup {
curl -L https://jrsoftware.org/download.php/is.exe?site=2 -o "${dlfile}"
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
env WINEARCH="${PAWPAW_TARGET}" WINEPREFIX="${pkgdir}" wine "${dlfile}" /allusers /dir=C:\\InnoSeup /nocancel /norestart /verysilent
fi
@@ -41,7 +45,7 @@ function create_innosetup_exe {
local pkgdir="${PAWPAW_BUILDDIR}/innosetup-6.0.5"
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"
}

# ---------------------------------------------------------------------------------------------------------------------


+ 18
- 0
setup/inno/win32.iss View File

@@ -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"

setup/inno/plugins.iss → setup/inno/win64.iss View File

@@ -2,9 +2,9 @@
ArchitecturesInstallIn64BitMode=x64
AppName=PawPaw
AppVersion=0.0.0
DefaultDirName={autopf}\PawPaw
DefaultDirName={commonpf64}\PawPaw
DisableDirPage=yes
OutputBaseFilename=PawPaw-0.0.0
OutputBaseFilename=PawPaw-win64-0.0.0
OutputDir=.
UsePreviousAppDir=no


Loading…
Cancel
Save