mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2025-04-30 07:05:06 +03:00
Try appveyor for MSI (not finished)
This commit is contained in:
parent
ad8d30ce74
commit
74ea971748
3 changed files with 200 additions and 0 deletions
23
appveyor.yml
Normal file
23
appveyor.yml
Normal file
|
@ -0,0 +1,23 @@
|
|||
version: '{build}'
|
||||
pull_requests:
|
||||
do_not_increment_build_number: true
|
||||
os: Visual Studio 2017
|
||||
shallow_clone: true
|
||||
clone_depth: 1
|
||||
|
||||
environment:
|
||||
MSYS2_PATH_TYPE: inherit
|
||||
CHERE_INVOKING: enabled_from_arguments
|
||||
|
||||
install:
|
||||
- c:\msys64\usr\bin\bash -lc "pacman --noconfirm -S curl unzip"
|
||||
|
||||
build_script:
|
||||
- cmd: >-
|
||||
cd \projects\yggdrasil-go
|
||||
- c:\msys64\usr\bin\bash -lc "./build.bat"
|
||||
|
||||
test: off
|
||||
|
||||
artifacts:
|
||||
- path: 'yggdrasil-*.msi'
|
65
contrib/msi/build.bat
Normal file
65
contrib/msi/build.bat
Normal file
|
@ -0,0 +1,65 @@
|
|||
@echo off
|
||||
rem SPDX-License-Identifier: GPL-2.0
|
||||
rem Copyright (C) 2019 WireGuard LLC. All Rights Reserved.
|
||||
|
||||
setlocal
|
||||
setlocal EnableDelayedExpansion
|
||||
set PATHEXT=.exe
|
||||
set BUILDDIR=%~dp0
|
||||
cd /d %BUILDDIR% || exit /b 1
|
||||
|
||||
set WIX_CANDLE_FLAGS=-nologo
|
||||
set WIX_LIGHT_FLAGS=-nologo -spdb -sice:ICE71 -sice:ICE61
|
||||
|
||||
set WINTUN_VERSION=0.7
|
||||
set WINTUN_AMD64_SHA256=c87f9e0df51ac5c4fc8551f38c58b6fe6c43c06344451e3ed8939f05f4979c7d
|
||||
set WINTUN_X86_SHA256=bdc40a2314964759653cd0717983dd3fedfeb53e7e15f4ed8370e12964c04b43
|
||||
|
||||
if exist .deps\prepared goto :build
|
||||
:installdeps
|
||||
rmdir /s /q .deps 2> NUL
|
||||
mkdir .deps || goto :error
|
||||
cd .deps || goto :error
|
||||
call :download wintun-x86.msm https://www.wintun.net/builds/wintun-x86-%WINTUN_VERSION%.msm %WINTUN_X86_SHA256% || goto :error
|
||||
call :download wintun-amd64.msm https://www.wintun.net/builds/wintun-amd64-%WINTUN_VERSION%.msm %WINTUN_AMD64_SHA256% || goto :error
|
||||
call :download wix-binaries.zip http://wixtoolset.org/downloads/v3.14.0.2812/wix314-binaries.zip 923892298f37514622c58cbbd9c2cadf2822d9bb53df8ee83aaeb05280777611 || goto :error
|
||||
echo [+] Extracting wix-binaries.zip
|
||||
mkdir wix\bin || goto :error
|
||||
unzip wix-binaries.zip -d wix\bin || goto :error
|
||||
echo [+] Cleaning up wix-binaries.zip
|
||||
del wix-binaries.zip || goto :error
|
||||
copy /y NUL prepared > NUL || goto :error
|
||||
cd .. || goto :error
|
||||
|
||||
:build
|
||||
set WIX=%BUILDDIR%.deps\wix\
|
||||
call :msi x86 i686 x86 || goto :error
|
||||
call :msi amd64 x86_64 x64 || goto :error
|
||||
if exist ..\sign.bat call ..\sign.bat
|
||||
if "%SigningCertificate%"=="" goto :success
|
||||
if "%TimestampServer%"=="" goto :success
|
||||
echo [+] Signing
|
||||
signtool sign /sha1 "%SigningCertificate%" /fd sha256 /tr "%TimestampServer%" /td sha256 /d "Yggdrasil Setup" "yggdrasil-*.msi" || goto :error
|
||||
|
||||
:success
|
||||
echo [+] Success.
|
||||
exit /b 0
|
||||
|
||||
:download
|
||||
echo [+] Downloading %1
|
||||
curl -#fLo %1 %2 || exit /b 1
|
||||
echo [+] Verifying %1
|
||||
for /f %%a in ('CertUtil -hashfile %1 SHA256 ^| findstr /r "^[0-9a-f]*$"') do if not "%%a"=="%3" exit /b 1
|
||||
goto :eof
|
||||
|
||||
:msi
|
||||
if not exist "%~1" mkdir "%~1"
|
||||
echo [+] Compiling %1
|
||||
"%WIX%bin\candle" %WIX_CANDLE_FLAGS% -dYGGDRASIL_PLATFORM="%~1" -dYGGDRASIL_BUILDNAME="%~1" -dYGGDRASIL_BUILDVERSION="%~1" -out "%~1\yggdrasil.wixobj" -arch %3 yggdrasil.wxs || exit /b %errorlevel%
|
||||
echo [+] Linking %1
|
||||
"%WIX%bin\light" %WIX_LIGHT_FLAGS% -out "yggdrasil-%~1.msi" "%~1\yggdrasil.wixobj" || exit /b %errorlevel%
|
||||
goto :eof
|
||||
|
||||
:error
|
||||
echo [-] Failed with error #%errorlevel%.
|
||||
cmd /c exit %errorlevel%
|
112
contrib/msi/yggdrasil.wxs
Normal file
112
contrib/msi/yggdrasil.wxs
Normal file
|
@ -0,0 +1,112 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
Copyright (C) 2019 WireGuard LLC. All Rights Reserved.
|
||||
-->
|
||||
<?if $(var.YGGDRASILTUN_PLATFORM) = "amd64"?>
|
||||
<?define UpgradeCode = "68601386-a5e7-48e1-bdfd-f08c907f419a"?>
|
||||
<?elseif $(var.YGGDRASILTUN_PLATFORM) = "x86"?>
|
||||
<?define UpgradeCode = "7e76f74b-9ed7-4654-867a-10467ffb7ca6"?>
|
||||
<?else?>
|
||||
<?error Unknown platform ?>
|
||||
<?endif?>
|
||||
|
||||
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Product
|
||||
Id="*"
|
||||
Name="Yggdrasil ($(var.YGGDRASIL_PKGNAME) branch)"
|
||||
Keywords="Installer"
|
||||
Description="Yggdrasil Network Installer"
|
||||
Language="1033"
|
||||
Version="$(var.YGGDRASIL_PKGVERSION)"
|
||||
Manufacturer="github.com/yggdrasil-network"
|
||||
UpgradeCode="$(var.UpgradeCode)">
|
||||
|
||||
<Package
|
||||
InstallerVersion="400"
|
||||
Compressed="yes"
|
||||
InstallScope="perMachine"
|
||||
Description="Yggdrasil Network"
|
||||
ReadOnly="yes" />
|
||||
|
||||
<Media
|
||||
Id="1"
|
||||
Cabinet="Media.cab"
|
||||
EmbedCab="yes"
|
||||
DiskPrompt="CD-ROM #1" />
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFilesFolder" Name="PFiles">
|
||||
<Directory Id="YggdrasilInstallFolder" Name="Yggdrasil">
|
||||
<Component Id="MainExecutable" Guid="f1ac3e74-e500-41a5-b35c-fc90a2d95445">
|
||||
<File
|
||||
Id="Yggdrasil"
|
||||
Name="yggdrasil.exe"
|
||||
DiskId="1"
|
||||
Source="yggdrasil.exe"
|
||||
KeyPath="yes" />
|
||||
<ServiceInstall
|
||||
Id="ServiceInstaller"
|
||||
Account="LocalSystem"
|
||||
Description="Yggdrasil Network router process"
|
||||
DisplayName="Yggdrasil Service"
|
||||
ErrorControl="normal"
|
||||
LoadOrderGroup="NetworkProvider"
|
||||
Name="yggdrasil"
|
||||
Start="auto"
|
||||
Type="ownProcess"
|
||||
Arguments="-autoconf"
|
||||
Vital="yes" />
|
||||
<ServiceControl
|
||||
Id="ServiceControl"
|
||||
Name="yggdrasil"
|
||||
Start="install"
|
||||
Stop="both"
|
||||
Remove="uninstall" />
|
||||
</Component>
|
||||
<Component Id="CtrlExecutable" Guid="f1ac3e74-e500-41a5-b35c-fc90a2d95445">
|
||||
<File
|
||||
Id="Yggdrasilctl"
|
||||
Name="yggdrasilctl.exe"
|
||||
DiskId="1"
|
||||
Source="yggdrasilctl.exe"
|
||||
KeyPath="yes"/>
|
||||
</Component>
|
||||
<Component Id="ConfigScript" Guid="f1ac3e74-e500-41a5-b35c-fc90a2d95445">
|
||||
<File
|
||||
Id="Configbat"
|
||||
Name="config.bat"
|
||||
DiskId="1"
|
||||
Source="config.bat"
|
||||
KeyPath="yes"/>
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
|
||||
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
|
||||
|
||||
<Property Id="ARPNOMODIFY" Value="yes" />
|
||||
<Property Id="ARPSYSTEMCOMPONENT" Value="1" />
|
||||
<Property Id="DISABLEADVTSHORTCUTS" Value="yes" />
|
||||
<Property Id="DISABLEROLLBACK" Value="yes" />
|
||||
<Property Id="MSIDISABLERMRESTART" Value="1" />
|
||||
<Property Id="MSIRMSHUTDOWN" Value="1" />
|
||||
|
||||
<MajorUpgrade
|
||||
AllowDowngrades="no"
|
||||
AllowSameVersionUpgrades="yes"
|
||||
DowngradeErrorMessage="A newer version of [ProductName] is already installed."
|
||||
Schedule="afterInstallExecute" />
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Merge Id="WintunMergeModule" Language="0" DiskId="1" SourceFile=".deps\wintun-$(var.YGGDRASILTUN_PLATFORM).msm" />
|
||||
</Directory>
|
||||
|
||||
<Feature Id="WintunFeature" Title="Wintun" Level="1">
|
||||
<MergeRef Id="WintunMergeModule" />
|
||||
</Feature>
|
||||
</Product>
|
||||
</Wix>
|
Loading…
Add table
Add a link
Reference in a new issue