From cfd51be7fe729aae30dfbd167f397d57cade6db0 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Sun, 17 Jan 2016 17:09:42 -0600 Subject: [PATCH] Add appveyor.yml for Windows CI via Appveyor Appveyor is like Travis-CI, but for Windows. Since it seems impossible to install texinfo, this elides building docs for now. --- NTMakefile | 5 ++++ appveyor.yml | 50 ++++++++++++++++++++++++++++++++++++ packages/windows/assembly/NTMakefile | 8 ++++++ 3 files changed, 63 insertions(+) create mode 100644 appveyor.yml diff --git a/NTMakefile b/NTMakefile index 9848a7897..adf04f845 100644 --- a/NTMakefile +++ b/NTMakefile @@ -33,8 +33,13 @@ thirdparty=thirdparty !endif +!ifdef APPVEYOR +SUBDIRS = include lib kuser kdc admin kadmin kpasswd appl \ + tools tests packages etc +!else SUBDIRS = include lib kuser kdc admin kadmin kpasswd appl doc \ tools tests packages etc $(thirdparty) packages\windows\installer +!endif !include windows/NTMakefile.w32 diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..39b35d74e --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,50 @@ +install: + # FIXME: Somehow this isn't enough to get texinfo installed + # See https://github.com/appveyor/ci/issues/606 + - C:\msys64\usr\bin\bash -lc "pacman --needed --noconfirm -Sy pacman-mirrors" + - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Sy" + - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S autoconf automake bison flex texinfo" + - C:\cygwin\setup-x86.exe -qnNdO -R C:\cygwin -s http://cygwin.mirror.constant.com -l C:\cygwin\var\cache\setup -P texinfo + +build_script: + - set PSDKDir=C:\Program Files\Microsoft SDKs\Windows\v7.1 + - call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" %1 %2 /xp + - set WIXDIR="c:\Program Files (x86)\Windows Installer XML v3.5" + # We're not doing any codesigning in the Appveyor build yet. + - SET CODESIGN_PKT=0000000000000000 + - set PATH=%PATH%;C:\Python26;C:\Perl64\bin;C:\tools\cygwin\bin;C:\Program Files (x86)\HTML Help Workshop + - set PATH=%PATH%;C:/msys64/usr/bin + - set PATH=%PATH%;C:\program files (x86)\windows installer xml v3.5\bin;C:\cygwin\bin + - set dbg__type=Debug + - title Heimdal Build %CPU% %dbg__type% + - echo PATH=%PATH% + # Right now we can't make doc nor installers + - nmake /f NTMakefile APPVEYOR=1 MAKEINFO=makeinfo NO_INSTALLERS=1 + - 7z a heimdal-out.zip C:\projects\heimdal\out\ + +test_script: + # Packages are not validated in the Appveyor build, FYI. + - nmake /f NTMakefile APPVEYOR=1 MAKEINFO=makeinfo NO_INSTALLERS=1 test + +artifacts: + - path: heimdal-out.zip + name: heimdal-out + +on_failure: + - appveyor PushArtifact heimdal-out.zip + +# To get RDP access to an appveyor worker for debugging a build, just +# uncomment these next two lines and the last two lines too. +#init: +# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) + +# Uncomment this to allow the RDP session to continue after the build +# finishes. +# +# There's a delete-me file on the desktop that one should delete when +# one is done with the worker. RDP sessions are capped at 60 minutes as +# of this writing. +# +#on_finish: +# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) + diff --git a/packages/windows/assembly/NTMakefile b/packages/windows/assembly/NTMakefile index 01039527c..c6b20b840 100644 --- a/packages/windows/assembly/NTMakefile +++ b/packages/windows/assembly/NTMakefile @@ -108,8 +108,12 @@ all:: asm-krb clean:: -$(RM) $(ASMKRBDIR)\*.* +!ifdef APPVEYOR +test:: +!else test:: $(MT) -manifest $(ASMKRBDIR)\$(ASMKRBMAN) -validate_manifest +!endif {$(BINDIR)}.dll{$(ASMKRBDIR)}.dll: $(CP) $< $@ @@ -132,8 +136,12 @@ $(APPMANIFEST): Heimdal.Application.manifest.in -e "s,[@]cpu[@],$(MCPU),g" \ -e "s,[@]pkt[@],$(CODESIGN_PKT),g" < $** > $@ +!ifdef APPVEYOR +test:: +!else test:: $(MT) -manifest $(APPMANIFEST) -validate_manifest +!endif # ---------------------------------------------------------------------- # Publisher configuration files -- 2.11.4.GIT