|
@@ -0,0 +1,115 @@
|
|
|
|
+parameters:
|
|
|
|
+ name: 'BuildLinux'
|
|
|
|
+ vmImage: 'ubuntu-16.04'
|
|
|
|
+ container: 'debian:stretch'
|
|
|
|
+ arch: '' # set it to i386 fof 32-bit build
|
|
|
|
+ buildSystem: 'cmake' # either 'cmake' or 'make'
|
|
|
|
+ cmakeConfig: 'RelWithDebInfo'
|
|
|
|
+
|
|
|
|
+jobs:
|
|
|
|
+ - job: ${{ parameters.name }}
|
|
|
|
+ pool:
|
|
|
|
+ vmImage: ${{ parameters.vmImage }}
|
|
|
|
+ container:
|
|
|
|
+ image: ${{ parameters.container }}
|
|
|
|
+ options: --name ci-container -v /usr/bin/docker:/tmp/docker:ro
|
|
|
|
+ variables:
|
|
|
|
+ DEBIAN_FRONTEND: noninteractive
|
|
|
|
+ ${{ if eq(parameters.arch, '') }}:
|
|
|
|
+ CMAKE_TOOLCHAIN: ''
|
|
|
|
+ ARCH: 64
|
|
|
|
+ ${{ if eq(parameters.arch, 'i386') }}:
|
|
|
|
+ CMAKE_TOOLCHAIN: -DCMAKE_TOOLCHAIN_FILE=other/cmake/linux32.toolchain.cmake
|
|
|
|
+ ARCH: 32
|
|
|
|
+ steps:
|
|
|
|
+ - script: |
|
|
|
|
+ /tmp/docker exec -t -u 0 ci-container \
|
|
|
|
+ sh -c "apt-get update && apt-get -o Dpkg::Options::="--force-confold" -y install sudo"
|
|
|
|
+ displayName: Setup sudo
|
|
|
|
+ - ${{ if eq(parameters.arch, '') }}:
|
|
|
|
+ - script: |
|
|
|
|
+ set -ex
|
|
|
|
+ sudo apt-get update -qqy
|
|
|
|
+ sudo apt-get install -qqy \
|
|
|
|
+ cmake \
|
|
|
|
+ make \
|
|
|
|
+ gcc \
|
|
|
|
+ libz-dev \
|
|
|
|
+ zlib1g-dev \
|
|
|
|
+ libpng-dev \
|
|
|
|
+ libsdl2-dev \
|
|
|
|
+ libvorbis-dev \
|
|
|
|
+ libalut-dev \
|
|
|
|
+ libmbedtls-dev \
|
|
|
|
+ libturbojpeg0-dev \
|
|
|
|
+ libuv1-dev \
|
|
|
|
+ libopenal-dev \
|
|
|
|
+ neko \
|
|
|
|
+ curl \
|
|
|
|
+ ca-certificates
|
|
|
|
+ displayName: Install dependencies
|
|
|
|
+ - ${{ if not(eq(parameters.arch, '')) }}:
|
|
|
|
+ - script: |
|
|
|
|
+ set -ex
|
|
|
|
+ sudo dpkg --add-architecture ${{ parameters.arch }}
|
|
|
|
+ sudo apt-get update -qqy
|
|
|
|
+ sudo apt-get install -qqy \
|
|
|
|
+ cmake \
|
|
|
|
+ make \
|
|
|
|
+ gcc-multilib \
|
|
|
|
+ libz-dev:${{ parameters.arch }} \
|
|
|
|
+ zlib1g-dev:${{ parameters.arch }} \
|
|
|
|
+ libpng-dev:${{ parameters.arch }} \
|
|
|
|
+ libsdl2-dev:${{ parameters.arch }} \
|
|
|
|
+ libvorbis-dev:${{ parameters.arch }} \
|
|
|
|
+ libalut-dev:${{ parameters.arch }} \
|
|
|
|
+ libmbedtls-dev:${{ parameters.arch }} \
|
|
|
|
+ libturbojpeg0-dev:i386 \
|
|
|
|
+ libuv1-dev:${{ parameters.arch }} \
|
|
|
|
+ libopenal-dev:${{ parameters.arch }} \
|
|
|
|
+ neko \
|
|
|
|
+ curl \
|
|
|
|
+ ca-certificates
|
|
|
|
+ displayName: Install dependencies
|
|
|
|
+ - template: install-haxe-snapshot.yml
|
|
|
|
+ parameters:
|
|
|
|
+ platform: linux64
|
|
|
|
+ - script: |
|
|
|
|
+ set -ex
|
|
|
|
+ haxelib setup ~/haxelib
|
|
|
|
+ haxelib install hashlink
|
|
|
|
+ haxelib list
|
|
|
|
+ displayName: Install hashlink haxelib
|
|
|
|
+ - ${{ if eq(parameters.buildSystem, 'cmake') }}:
|
|
|
|
+ - script: cmake . -DCMAKE_BUILD_TYPE=${{ parameters.cmakeConfig }} $(CMAKE_TOOLCHAIN)
|
|
|
|
+ displayName: CMake
|
|
|
|
+ - script: make
|
|
|
|
+ displayName: Build
|
|
|
|
+ - script: |
|
|
|
|
+ set -ex
|
|
|
|
+ ldd -v ./bin/hl
|
|
|
|
+ displayName: Check runtime dependencies
|
|
|
|
+ - script: ctest --verbose
|
|
|
|
+ displayName: Test
|
|
|
|
+ - script: make package
|
|
|
|
+ displayName: Package
|
|
|
|
+ - task: PublishPipelineArtifact@0
|
|
|
|
+ inputs:
|
|
|
|
+ artifactName: ${{ parameters.name }}Binaries
|
|
|
|
+ targetPath: bin/hashlink-1.10.0-Linux.tar.gz
|
|
|
|
+ - ${{ if eq(parameters.buildSystem, 'make') }}:
|
|
|
|
+ - script: make
|
|
|
|
+ displayName: Build
|
|
|
|
+ - script: |
|
|
|
|
+ set -ex
|
|
|
|
+ sudo make install
|
|
|
|
+ sudo ldconfig
|
|
|
|
+ displayName: Install
|
|
|
|
+ - script: |
|
|
|
|
+ set -ex
|
|
|
|
+ haxe -hl hello.hl -cp other/tests -main HelloWorld -D interp
|
|
|
|
+ ./hl hello.hl
|
|
|
|
+ haxe -hl src/_main.c -cp other/tests -main HelloWorld
|
|
|
|
+ make hlc
|
|
|
|
+ ./hlc
|
|
|
|
+ displayName: Test
|