appveyor.yml 5.92 KB
Newer Older
James R.'s avatar
James R. committed
1
version: 1.3.{branch}-{build}
2 3 4 5 6 7 8 9 10 11
os: MinGW

environment:
 CC: ccache
 CCACHE_CC: i686-w64-mingw32-gcc
 CCACHE_CC_64: x86_64-w64-mingw32-gcc
 WINDRES: windres
 # c:\mingw-w64 i686 has gcc 6.3.0, so use c:\msys64 7.3.0 instead
 MINGW_SDK: c:\msys64\mingw32
 # c:\msys64 x86_64 has gcc 8.2.0, so use c:\mingw-w64 7.3.0 instead
James R.'s avatar
James R. committed
12
 MINGW_SDK_64: C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
 CFLAGS: -Wall -W -Werror -Wno-error=implicit-fallthrough -Wimplicit-fallthrough=3 -Wno-tautological-compare -Wno-error=suggest-attribute=noreturn
 NASM_ZIP: nasm-2.12.01
 NASM_URL: http://www.nasm.us/pub/nasm/releasebuilds/2.12.01/win64/nasm-2.12.01-win64.zip
 UPX_ZIP: upx391w
 UPX_URL: http://upx.sourceforge.net/download/upx391w.zip
 CCACHE_EXE: ccache.exe
 CCACHE_URL: http://alam.srb2.org/ccache.exe
 CCACHE_COMPRESS: true
 CCACHE_DIR: C:\Users\appveyor\.ccache
 # Disable UPX by default. The user can override this in their Appveyor project settings
 NOUPX: 1
 ##############################
 # DEPLOYER VARIABLES
 # DPL_ENABLED=1 builds installers for branch names starting with `deployer`.
 # DPL_TAG_ENABLED=1 will also build installers for release tags. DPL_ENABLED=1 must also be set.
 # Set these in the Appveyor project settings
 ##############################
 DPL_ENABLED: 0
 DPL_TAG_ENABLED: 0
James R.'s avatar
James R. committed
32
 DPL_INSTALLER_NAME: srb2kart-v13
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
 # Asset handling is barebones vs. Travis Deployer. We operate on 7z only.
 # Include the README files and the OpenGL batch in the main and patch archives.
 # The x86/x64 archives contain the DLL binaries.
 ASSET_ARCHIVE_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-assets.7z
 ASSET_ARCHIVE_PATCH_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-patch-assets.7z
 ASSET_ARCHIVE_X86_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-x86-assets.7z
 ASSET_ARCHIVE_X64_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-x64-assets.7z
 ASSET_ARCHIVE_OPTIONAL_PATH: https://github.com/mazmazz/Kart-Public/releases/download/kart_assets/srb2kart-v102-optional-assets.7z
 # This is overridden to 1 for release tag builds
 ASSET_FILES_OPTIONAL_GET: 0
 # For patches, also include the X86/X64 DLLs.
 PACKAGE_PATCH_DLL_GET: 0
 # Delete all asset downloads so they can be redownloaded
 ASSET_CLEAN: 0

cache:
- nasm-2.12.01.zip
- upx391w.zip
- ccache.exe
- C:\Users\appveyor\.ccache
- C:\Users\appveyor\srb2_cache

install:
- if [%CONFIGURATION%] == [SDL64] ( set "X86_64=1" )
- if [%CONFIGURATION%] == [SDL64] ( set "CONFIGURATION=SDL" )
- if [%X86_64%] == [1] ( set "MINGW_SDK=%MINGW_SDK_64%" )
- if [%X86_64%] == [1] ( set "CCACHE_CC=%CCACHE_CC_64%" )

- if not exist "%NASM_ZIP%.zip" appveyor DownloadFile "%NASM_URL%" -FileName "%NASM_ZIP%.zip"
- 7z x -y "%NASM_ZIP%.zip" -o%TMP% >null
- robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs "%TMP%\%NASM_ZIP%" "%MINGW_SDK%\bin" nasm.exe || exit 0

- if not exist "%UPX_ZIP%.zip" appveyor DownloadFile "%UPX_URL%" -FileName "%UPX_ZIP%.zip"
- 7z x -y "%UPX_ZIP%.zip" -o%TMP% >null
- robocopy /S /xx /ns /nc /nfl /ndl /np /njh /njs "%TMP%\%UPX_ZIP%" "%MINGW_SDK%\bin" upx.exe || exit 0

- if not exist "%CCACHE_EXE%" appveyor DownloadFile "%CCACHE_URL%" -FileName "%CCACHE_EXE%"
- ccache -M 99M
- xcopy /Y /V /I ccache.exe "%MINGW_SDK%\bin"

configuration:
- SDL
James R.'s avatar
James R. committed
75
#- SDL64
76 77 78 79 80 81 82 83 84 85

before_build:
- set "Path=%MINGW_SDK%\bin;%Path%"
- if [%X86_64%] == [1] ( x86_64-w64-mingw32-gcc --version ) else ( i686-w64-mingw32-gcc --version )
- mingw32-make --version
- if not [%X86_64%] == [1] ( nasm -v )
- if not [%NOUPX%] == [1] ( upx -V )
- ccache -V
- ccache -s
- if [%NOUPX%] == [1] ( set "NOUPX=NOUPX=1" ) else ( set "NOUPX=" )
86 87
- if defined [%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%] ( set "COMMIT=%APPVEYOR_PULL_REQUEST_HEAD_COMMIT%" ) else ( set "COMMIT=%APPVEYOR_REPO_COMMIT%" )
- cmd: git rev-parse --short %COMMIT%>%TMP%/gitshort.txt
James R.'s avatar
James R. committed
88
- cmd: set /P GITSHORT=<%TMP%/gitshort.txt
89
# for pull requests, take the owner's name only, if this isn't the same repo of course
90
- set "REPO=%APPVEYOR_REPO_BRANCH%"
James R.'s avatar
James R. committed
91
- if not [%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%] == [] ( if not [%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%] == [%APPVEYOR_REPO_NAME%] (  for /f "delims=/" %%a in ("%APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME%") do set "REPO=%%a-%APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH%" ) )
92
- set "EXENAME=EXENAME=srb2win-%REPO%-%GITSHORT%.exe"
93
- set "SRB2_MFLAGS=-C src WARNINGMODE=1 CCACHE=1 NOOBJDUMP=1 %NOUPX% %EXENAME%"
James R.'s avatar
James R. committed
94
- if [%X86_64%] == [1] ( set "MINGW_FLAGS=MINGW64=1 X86_64=1 GCC81=1" ) else ( set "MINGW_FLAGS=MINGW=1 GCC91=1" )
95 96 97 98 99 100 101 102 103 104 105 106 107 108
- set "SRB2_MFLAGS=%SRB2_MFLAGS% %MINGW_FLAGS% %CONFIGURATION%=1"

build_script:
- cmd: mingw32-make.exe %SRB2_MFLAGS% clean
- cmd: mingw32-make.exe %SRB2_MFLAGS% ERRORMODE=1 -k

after_build:
- if [%X86_64%] == [1] (
    set "BUILD_PATH=bin\Mingw64\Release"
  ) else (
    set "BUILD_PATH=bin\Mingw\Release"
  )
- if [%X86_64%] == [1] ( set "CONFIGURATION=%CONFIGURATION%64" )
- ccache -s
James R.'s avatar
James R. committed
109 110
- set BUILD_ARCHIVE=%REPO%-%GITSHORT%-%CONFIGURATION%.7z
- set BUILDSARCHIVE=%REPO%-%CONFIGURATION%.7z
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
- cmd: 7z a %BUILD_ARCHIVE% %BUILD_PATH% -xr!.gitignore
- appveyor PushArtifact %BUILD_ARCHIVE%
- cmd: copy %BUILD_ARCHIVE% %BUILDSARCHIVE%
- appveyor PushArtifact %BUILDSARCHIVE%
##############################
# DEPLOYER SCRIPT
##############################
- if [%DPL_ENABLED%] == [1] ( call "deployer\appveyor\deployer.bat" )

test: off

#deploy:
#  - provider: FTP
#    protocol: ftps
#    host:
#      secure: NsLJEPIBvmwCOj8Tg8RoRQ==
#    username:
#      secure: ejxi5mvk7oLYu7QtbYojajEPigMy0mokaKhuEVuDZcA=
#    password:
#      secure: Hbn6Uy3lT0YZ88yFJ3aW4w==
#    folder: appveyor
#    application:
#    active_mode: false
#    on:
#      branch: master
#      appveyor_repo_tag: true


on_finish:
#- cmd: echo xfreerdp /u:appveyor /cert-ignore +clipboard /v:<ip>:<port>
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))