The default tar in the path withing the CI environment is not the bsdtar variation of tar that comes with Windows (the one which will extract zip files as well as tar files). Try using powershell instead for the extraction instead.
241 lines
7.8 KiB
YAML
241 lines
7.8 KiB
YAML
strategy:
|
|
matrix:
|
|
linux_focal_gcc9_minimal:
|
|
imageName: 'ubuntu-20.04'
|
|
toolchainName: gcc9
|
|
buildTargetName: minimal
|
|
linux_focal_clang_all:
|
|
imageName: 'ubuntu-20.04'
|
|
toolchainName: clang
|
|
buildTargetName: all
|
|
linux_focal_gcc9_all:
|
|
imageName: 'ubuntu-20.04'
|
|
toolchainName: gcc9
|
|
buildTargetName: all
|
|
linux_focal_gcc10_all:
|
|
imageName: 'ubuntu-20.04'
|
|
toolchainName: gcc10
|
|
buildTargetName: all
|
|
linux_bionic_gcc7_all:
|
|
imageName: 'ubuntu-18.04'
|
|
toolchainName: gcc7
|
|
buildTargetName: all
|
|
# build is currently broken
|
|
# mac_catalina_gcc8_all:
|
|
# imageName: 'macOS-10.15'
|
|
# ccName: gcc-8
|
|
# cxxName: g++-8
|
|
# buildSetting: 'all'
|
|
mac_catalina_clang_all:
|
|
imageName: 'macOS-10.15'
|
|
toolchainName: clang
|
|
buildTargetName: all
|
|
windows-visualstudio:
|
|
imageName: 'windows-2019'
|
|
toolchainName: vs
|
|
buildTargetName: all
|
|
windows-mingw:
|
|
imageName: 'windows-2019'
|
|
toolchainName: mingw
|
|
buildTargetName: all
|
|
linux_focal_cross_msdos:
|
|
imageName: 'ubuntu-20.04'
|
|
toolchainName: cross
|
|
buildTargetName: msdos
|
|
|
|
pool:
|
|
vmImage: $(imageName)
|
|
|
|
# resources:
|
|
# repositories:
|
|
# - repository: pdcursesrepo
|
|
# type: github
|
|
# name: wmcbrine/PDCurses
|
|
# ref: refs/heads/master
|
|
# endpoint: github.com_barthouse
|
|
|
|
variables:
|
|
toolchain: $(toolchainName)
|
|
buildTarget: $(buildTargetName)
|
|
netHackPath: s/NetHack
|
|
|
|
steps:
|
|
- bash: |
|
|
if [ "$(toolchain)" == "gcc7" ]
|
|
then
|
|
echo "##vso[task.setvariable variable=CC]gcc-7"
|
|
echo "##vso[task.setvariable variable=CXX]g++-7"
|
|
fi
|
|
if [ "$(toolchain)" == "gcc9" ]
|
|
then
|
|
echo "##vso[task.setvariable variable=CC]gcc-9"
|
|
echo "##vso[task.setvariable variable=CXX]g++-9"
|
|
fi
|
|
if [ "$(toolchain)" == "gcc10" ]
|
|
then
|
|
echo "##vso[task.setvariable variable=CC]gcc-10"
|
|
echo "##vso[task.setvariable variable=CXX]g++-10"
|
|
fi
|
|
if [ "$(toolchain)" == "clang" ]
|
|
then
|
|
echo "##vso[task.setvariable variable=CC]clang"
|
|
echo "##vso[task.setvariable variable=CXX]clang++"
|
|
fi
|
|
if [ "$(toolchain)" == "cross" ]
|
|
then
|
|
echo "##vso[task.setvariable variable=CC]gcc-9"
|
|
echo "##vso[task.setvariable variable=CXX]g++-9"
|
|
fi
|
|
displayName: 'Setting variables'
|
|
|
|
- bash: |
|
|
echo "toolchain: $(toolchain)"
|
|
echo "buildTarget: $(buildTarget)"
|
|
echo "netHackPath: $NETHACKPATH"
|
|
echo "CC: $CC"
|
|
echo "CXX: $CXX"
|
|
displayName: 'Echoing variables'
|
|
|
|
- checkout: git://NetHack/NetHack@NetHack-3.7
|
|
submodules: true
|
|
path: $(netHackPath) # $(Agent.BuildDirectory)/$(netHackPath)
|
|
|
|
- task: DownloadSecureFile@1
|
|
name: storeKey
|
|
inputs:
|
|
secureFile: 'NetHackPackage_StoreKey.pfx'
|
|
condition: eq( variables.toolchain, 'vs' )
|
|
displayName: 'Store Key Download'
|
|
|
|
- task: CopyFiles@2
|
|
inputs:
|
|
contents: NetHackPackage_StoreKey.pfx
|
|
SourceFolder: $(Agent.TempDirectory)
|
|
TargetFolder: $(Agent.BuildDirectory)/$(netHackPath)/sys/windows/vs
|
|
condition: eq( variables.toolchain, 'vs' )
|
|
displayName: 'Copying store key'
|
|
|
|
- task: NuGetCommand@2
|
|
inputs:
|
|
command: 'restore'
|
|
restoreSolution: '$(Agent.BuildDirectory)/$(netHackPath)/sys/windows/vs/NetHack.sln'
|
|
feedsToUse: 'select'
|
|
|
|
- task: MSBuild@1
|
|
inputs:
|
|
solution: $(Agent.BuildDirectory)/$(netHackPath)/sys/windows/vs/NetHack.sln
|
|
platform: Win32
|
|
configuration: Debug
|
|
condition: eq( variables.toolchain, 'vs' )
|
|
displayName: 'Visual Studio Build'
|
|
|
|
- bash: |
|
|
export ADD_LUA=Y
|
|
export WANT_LUAC=N
|
|
export LUATOP=../submodules/lua
|
|
export LUASRC=../submodules/lua
|
|
export ADD_CURSES=Y
|
|
export PDCURSES_TOP=../submodules/pdcurses
|
|
export LUA_VERSION=5.4.4
|
|
#
|
|
# 64-bit
|
|
#export CURLSRC=https://github.com/brechtsanders/winlibs_mingw/releases/download/11.2.0-9.0.0-ucrt-r4/winlibs-x86_64-posix-seh-gcc-11.2.0-mingw-w64ucrt-9.0.0-r4.zip
|
|
#export CURLDST=mingw-x64.zip
|
|
#export MINGWBIN=mingw64
|
|
#export MSYSTEM=MINGW64
|
|
#
|
|
# 32-bit
|
|
export CURLSRC=https://github.com/brechtsanders/winlibs_mingw/releases/download/11.2.0-9.0.0-ucrt-r4/winlibs-i686-posix-dwarf-gcc-11.2.0-mingw-w64ucrt-9.0.0-r4.zip
|
|
export CURLDST=mingw-x86.zip
|
|
export MINGWBIN=mingw32
|
|
export MSYSTEM=MINGW32
|
|
# all
|
|
mkdir -p ../lib
|
|
cd ../lib
|
|
mkdir -p mingw
|
|
curl -L $CURLSRC -o $CURLDST
|
|
#tar -C mingw -xvf $CURLDST
|
|
#/c/Windows/System32/tar -C mingw -xvf $CURLDST
|
|
powershell -command "Expand-Archive -Force $CURLDST mingw"
|
|
export PATH=../lib/mingw/$MINGWBIN/bin:$PATH
|
|
export
|
|
cd ../src
|
|
pwd
|
|
cp ../sys/windows/Makefile.mingw32* .
|
|
mingw32-make -f Makefile.mingw32 CI_COMPILER=1 MSYSTEM=$MSYSTEM LUA_VERSION=$LUA_VERSION clean
|
|
mingw32-make -f Makefile.mingw32 CI_COMPILER=1 MSYSTEM=$MSYSTEM LUA_VERSION=$LUA_VERSION depend
|
|
mingw32-make -f Makefile.mingw32 CI_COMPILER=1 MSYSTEM=$MSYSTEM LUA_VERSION=$LUA_VERSION
|
|
condition: eq( variables.toolchain, 'mingw' )
|
|
workingDirectory: $(Agent.BuildDirectory)/$(netHackPath)/src
|
|
displayName: 'MinGW Build'
|
|
|
|
- bash: |
|
|
sudo apt-get -qq -y update
|
|
sudo apt-get -qq -y install libncurses5-dev
|
|
sudo apt-get -qq -y install libx11-dev libxaw7-dev xfonts-utils qtbase5-dev qtmultimedia5-dev qtbase5-dev-tools
|
|
condition: eq( variables['Agent.OS'], 'Linux' )
|
|
workingDirectory: $(Agent.BuildDirectory)/$(netHackPath)
|
|
displayName: 'Getting linux build dependencies'
|
|
|
|
- bash: |
|
|
cd sys/unix
|
|
sh setup.sh hints/linux.370
|
|
cd ../..
|
|
make fetch-lua
|
|
make WANT_WIN_ALL=1 QT_SELECT=5 MOC=moc all
|
|
condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.buildTarget, 'all'))
|
|
workingDirectory: $(Agent.BuildDirectory)/$(netHackPath)
|
|
displayName: 'Building linux full build'
|
|
|
|
- bash: |
|
|
cd sys/unix
|
|
sh setup.sh hints/linux-minimal
|
|
cd ../..
|
|
sed -i '/^#define CLIPPING/d' include/config.h
|
|
sed -i '/^#define COMPRESS/d' include/config.h
|
|
#sed -i '/^#define DOAGAIN/d' include/config.h
|
|
sed -i '/^#define DUMPLOG/d' include/config.h
|
|
#sed -i '/^#define GDBPATH/d' include/config.h
|
|
#sed -i '/^#define GREPPATH/d' include/config.h
|
|
sed -i '/^#define INSURANCE/d' include/config.h
|
|
sed -i '/^#define LOGFILE/d' include/config.h
|
|
sed -i '/^#define NEWS/d' include/config.h
|
|
sed -i '/^#define PANICLOG/d' include/config.h
|
|
#sed -i '/^#define STATUS_HILITES/d' include/config.h
|
|
sed -i '/^#define SYSCF/d' include/config.h
|
|
sed -i '/^#define USER_SOUNDS/d' include/config.h
|
|
sed -i '/^#define XLOGFILE/d' include/config.h
|
|
|
|
sed -i '/^#define MAIL/d' include/unixconf.h
|
|
sed -i '/^#define SHELL/d' include/unixconf.h
|
|
sed -i '/^#define SUSPEND/d' include/unixconf.h
|
|
sed -i 's/^#define TEXTCOLOR//' include/unixconf.h
|
|
make fetch-lua
|
|
make WANT_WIN_ALL=1 all
|
|
condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.buildTarget, 'minimal'))
|
|
displayName: 'Building linux minimal build'
|
|
workingDirectory: $(Agent.BuildDirectory)/$(netHackPath)
|
|
|
|
- bash: |
|
|
cd sys/unix
|
|
sh setup.sh hints/macos.370
|
|
cd ../..
|
|
make fetch-lua
|
|
make all
|
|
condition: eq( variables['Agent.OS'], 'Darwin' )
|
|
workingDirectory: $(Agent.BuildDirectory)/$(netHackPath)
|
|
displayName: 'Building mac full build'
|
|
|
|
- bash: |
|
|
export GCCVER=gcc1020
|
|
cd sys/unix
|
|
sh setup.sh hints/linux.370
|
|
cd ../..
|
|
make fetch-lua
|
|
sh sys/msdos/fetch-cross-compiler.sh
|
|
make LUA_VERSION=5.4.4 WANT_WIN_TTY=1 WANT_WIN_CURSES=1 CROSS_TO_MSDOS=1 all
|
|
make LUA_VERSION=5.4.4 WANT_WIN_TTY=1 WANT_WIN_CURSES=1 CROSS_TO_MSDOS=1 package
|
|
condition: and(eq( variables['Agent.OS'], 'Linux' ), eq( variables.toolchain, 'cross'))
|
|
workingDirectory: $(Agent.BuildDirectory)/$(netHackPath)
|
|
displayName: 'Building MSDOS build'
|