summaryrefslogtreecommitdiffstats
path: root/appveyor.yml
blob: 084e7179536481c99b75601af7acc578bdbcad2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
---

version: 0.11.3-{build}

configuration: Release
image: Visual Studio 2022
platform: x64

environment:
    APPVEYOR_SAVE_CACHE_ON_ERROR: true
    MATRIX_ACCESS_TOKEN:
        secure: Qoy+QQ8zWXYCQrck9GtXJsoPTv9r/rhgCDUlKJ6ue+gkteYG40E9MxgwP1svn6bse20H4z6Svrxn8kFbcJB7Wg2Cnv1s326/vsJJzhWir2eHFFGK+f4SB992/U0HoQmk3Cq5hPk7dLcA7KqHIa1g1PTSFPfl1VODJ2UqqAyn8nzbC5ym+wwU1buJqoWPlTyHBW7eE8wNe77+qI18XpF7NN8yuOOyg3Tzup9YyXLrI36XiJu/5JD3j3s3V1QiUTpuLyQzqwuBUOf1MHTbzuPwHm3ZwzSM98WD6aL6riaK9qa7mDbSx1aY0ukIYSY9IdAfHNwZY/DEAn+QAVD+ZTvPq04ASv+kmSFpOBKr07kpqfM=



cache:
  - c:\hunter\ -> appveyor.yml, CMakeLists.txt, cmake/Hunter/config.cmake
  - build\_deps -> appveyor.yml, CMakeLists.txt

build:
    verbosity: minimal

install:
    - set QT_DIR=C:\Qt\6.5\msvc2019_64
    - set PATH=C:\Strawberry\perl\bin;C:\Python39-x64;%QT_DIR%\bin;%PATH%

build_script:
    # VERSION format:     branch-master/branch-1.2
    # INSTVERSION format: x.y.z
    # WINVERSION format:  9999.0.0.123/1.2.0.234
    - if "%APPVEYOR_REPO_TAG%"=="false" set INSTVERSION=0.11.3
    - if "%APPVEYOR_REPO_TAG%"=="false" set VERSION=0.11.3
    - if "%APPVEYOR_REPO_TAG%"=="false" set WINVERSION=%INSTVERSION%.%APPVEYOR_BUILD_NUMBER%
    # VERSION format:     v1.2.3/v1.3.4
    # INSTVERSION format: 1.2.3/1.3.4
    # WINVERSION format:  1.2.3.123/1.3.4.234
    - if "%APPVEYOR_REPO_TAG%"=="true" set VERSION=%APPVEYOR_REPO_TAG_NAME%
    - if "%APPVEYOR_REPO_TAG%"=="true" set INSTVERSION=%VERSION:~1%
    - if "%APPVEYOR_REPO_TAG%"=="true" set WINVERSION=%VERSION:~1%.%APPVEYOR_BUILD_NUMBER%
    - set DATE=%date:~10,4%-%date:~4,2%-%date:~7,2%
    - echo %VERSION%
    - echo %INSTVERSION%
    - echo %DATE%

    # Build nheko
    - cmake -G "Visual Studio 17 2022" -A x64 -H. -Bbuild
      -DHUNTER_ROOT="C:\hunter"
      -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON
      -DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release

    - cmake --build build --config Release

    - call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
    - git clone https://github.com/Nheko-Reborn/qt-jdenticon.git
    - cd qt-jdenticon
    - qmake
    - nmake
    - cd ..

after_build:
    # Variables
    - set BUILD=%APPVEYOR_BUILD_FOLDER%
    - echo %BUILD%
    - mkdir NhekoRelease
    - copy build\Release\nheko.exe NhekoRelease\nheko.exe
    - copy qt-jdenticon\release\qtjdenticon0.dll NhekoRelease\qtjdenticon.dll
    - copy build\_deps\cmark-build\src\Release\cmark.dll NhekoRelease\cmark.dll
    - windeployqt --qmldir resources\qml\ NhekoRelease\nheko.exe

    - 7z a nheko_win_64.zip .\NhekoRelease\*
    - ls -lh build\Release\
    - ls -lh NhekoRelease\
    - mkdir NhekoData
    - xcopy .\NhekoRelease\*.* NhekoData\*.* /s /e /c /y
    #
    # Create the Qt Installer Framework version
    #
    - mkdir installer
    - mkdir installer\config
    - mkdir installer\packages
    - mkdir installer\packages\io.github.nhekoreborn.nheko
    - mkdir installer\packages\io.github.nhekoreborn.nheko\data
    - mkdir installer\packages\io.github.nhekoreborn.nheko\meta
    # Copy installer data
    - copy %BUILD%\resources\nheko.ico installer\config
    - copy %BUILD%\resources\nheko.png installer\config
    - copy %BUILD%\COPYING installer\packages\io.github.nhekoreborn.nheko\meta\license.txt
    - copy %BUILD%\deploy\installer\config.xml installer\config
    - copy %BUILD%\deploy\installer\controlscript.qs installer\config
    - copy %BUILD%\deploy\installer\uninstall.qs installer\packages\io.github.nhekoreborn.nheko\data
    - copy %BUILD%\deploy\installer\gui\package.xml installer\packages\io.github.nhekoreborn.nheko\meta
    - copy %BUILD%\deploy\installer\gui\installscript.qs installer\packages\io.github.nhekoreborn.nheko\meta
    # Amend version and date
    - sed -i "s/__VERSION__/%VERSION%/" installer\config\config.xml
    - sed -i "s/__VERSION__/%VERSION%/" installer\packages\io.github.nhekoreborn.nheko\meta\package.xml
    - sed -i "s/__DATE__/%DATE%/" installer\packages\io.github.nhekoreborn.nheko\meta\package.xml
    # Copy nheko data
    - xcopy NhekoData\*.* installer\packages\io.github.nhekoreborn.nheko\data\*.* /s /e /c /y
    - copy NhekoRelease\nheko.exe installer\packages\io.github.nhekoreborn.nheko\data
    - mkdir tools
    - curl -L -O https://download.qt.io/official_releases/qt-installer-framework/4.3.0/QtInstallerFramework-windows-x86-4.3.0.exe
    - 7z x QtInstallerFramework-windows-x86-4.3.0.exe -otools -aoa
    - set PATH=%BUILD%\tools\bin;%PATH%
    - binarycreator.exe -f -c installer\config\config.xml -p installer\packages nheko-installer.exe

    # build an msix
    - mkdir msix
    - xcopy .\NhekoRelease\*.* msix\*.* /s /e /c /y
    - copy %BUILD%\resources\nheko.png msix
    - copy %BUILD%\resources\AppxManifest.xml msix
    - del msix\vc_redist*
    - 'sed -i "s/ Version=[^ ]*/ Version=\"%WINVERSION%\"/" msix\AppxManifest.xml'
    - '"C:\Program Files (x86)\Windows Kits\10\App Certification Kit\makeappx.exe" pack -d msix -p nheko.msix'

    - copy nheko-installer.exe nheko-%APPVEYOR_REPO_TAG_NAME%-installer.exe
    - copy nheko-installer.exe nheko-%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%-installer.exe
    - ps: .\.ci\upload-nightly.ps1

deploy:
    - description: "Development builds"
      provider: GitHub
      auth_token:
          secure: "ShStWeqp+TkYqJPQr7uFZb+B8ZTgC7Iwth+IkhjfRDCTLhy8gtWvlPzlQilder3E"
      artifact: nheko-${APPVEYOR_REPO_TAG_NAME}-installer.exe
      force_update: true
      prerelease: true
      on:
          appveyor_repo_tag: true

artifacts:
    - path: nheko_win_64.zip
    - path: nheko.msix
    - path: nheko-$(APPVEYOR_REPO_TAG_NAME)-installer.exe
    - path: nheko-$(APPVEYOR_PULL_REQUEST_HEAD_COMMIT)-installer.exe