159 lines
6.2 KiB
YAML
159 lines
6.2 KiB
YAML
|
parameters:
|
||
|
name: ''
|
||
|
vmImage: ''
|
||
|
arch: '' # hxcpp's target arch (HXCPP_Mxx), can be '32' or '64'
|
||
|
platform: '' # can be linux64, mac, windows, or windows64
|
||
|
listPlatform32: ['linux32', 'windows']
|
||
|
listPlatform64: ['linux64', 'mac', 'windows64']
|
||
|
|
||
|
jobs:
|
||
|
- job: ${{ parameters.name }}
|
||
|
pool:
|
||
|
vmImage: ${{ parameters.vmImage }}
|
||
|
variables:
|
||
|
${{ if startsWith(parameters.vmImage, 'ubuntu-') }}:
|
||
|
libExt: .dso
|
||
|
sep: '/'
|
||
|
${{ if contains(parameters.vmImage, 'mac') }}:
|
||
|
libExt: .dylib
|
||
|
sep: '/'
|
||
|
${{ if contains(parameters.vmImage, 'win') }}:
|
||
|
libExt: .dll
|
||
|
sep: '\'
|
||
|
steps:
|
||
|
- ${{ if startsWith(parameters.vmImage, 'ubuntu-') }}:
|
||
|
- script: |
|
||
|
set -ex
|
||
|
sudo rm -R /var/lib/mysql/
|
||
|
# mariadb
|
||
|
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup > mariadb_repo_setup
|
||
|
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup.sha256 > mariadb_repo_setup.sha256
|
||
|
sha256sum --check mariadb_repo_setup.sha256
|
||
|
sudo bash mariadb_repo_setup
|
||
|
sudo apt-get update -qqy
|
||
|
sudo apt-get remove -qqy mysql-common
|
||
|
sudo apt-get autoremove -qqy
|
||
|
sudo apt-get install -qqy mariadb-server
|
||
|
# remaining packages
|
||
|
sudo apt-get install -qqy gcc-multilib g++-multilib
|
||
|
displayName: Install dependencies
|
||
|
- script: |
|
||
|
set -ex
|
||
|
sudo systemctl start mysql
|
||
|
sudo mysql -u root -e "create database hxcpp; grant all privileges on hxcpp.* to hxcpp@localhost identified by 'hxcpp'; flush privileges;"
|
||
|
displayName: Configure MariaDB
|
||
|
- template: install-neko-snapshot.yaml
|
||
|
parameters:
|
||
|
platform: ${{ parameters.platform }}
|
||
|
- template: install-haxe-snapshot.yaml
|
||
|
parameters:
|
||
|
platform: ${{ parameters.platform }}
|
||
|
- script: |
|
||
|
set -ex
|
||
|
mkdir -p ~/haxelib
|
||
|
haxelib setup ~/haxelib
|
||
|
haxelib install utest
|
||
|
haxelib dev hxcpp $(Build.SourcesDirectory)
|
||
|
haxelib list
|
||
|
displayName: Install Haxe libraries
|
||
|
- script: haxe compile.hxml
|
||
|
workingDirectory: tools/run
|
||
|
displayName: Build run.n
|
||
|
- script: haxe compile.hxml
|
||
|
workingDirectory: tools/hxcpp
|
||
|
displayName: Build hxcpp
|
||
|
- script: haxe compile-cppia.hxml
|
||
|
workingDirectory: project
|
||
|
displayName: Build cppia
|
||
|
|
||
|
# cffi
|
||
|
- script: haxelib run hxcpp build.xml -debug -DHXCPP_M${{parameters.arch}}
|
||
|
workingDirectory: test/cffi/project
|
||
|
displayName: Build cffi project
|
||
|
- bash: |
|
||
|
set -ex
|
||
|
haxe compile.hxml -debug -D HXCPP_M${{parameters.arch}}
|
||
|
haxe compile-utf8.hxml -debug -D HXCPP_M${{parameters.arch}}
|
||
|
haxe compile-neko.hxml -debug -D HXCPP_M${{parameters.arch}}
|
||
|
workingDirectory: test/cffi
|
||
|
displayName: cffi test - Compile
|
||
|
- script: bin$(sep)cpp$(sep)TestMain-debug
|
||
|
workingDirectory: test/cffi
|
||
|
displayName: cffi test - Run
|
||
|
- script: bin$(sep)cpp-utf8$(sep)TestMain-debug
|
||
|
workingDirectory: test/cffi
|
||
|
displayName: cffi-utf8 test - Run
|
||
|
- ${{ if or(and(containsValue(parameters.listPlatform32, parameters.platform), eq(parameters.arch, '32')), and(containsValue(parameters.listPlatform64, parameters.platform), eq(parameters.arch, '64'))) }}:
|
||
|
- bash: cp test/cffi/project/ndll/*/prime$(libExt) test/cffi/bin/neko/prime.ndll
|
||
|
displayName: Copy prime.ndll
|
||
|
- script: neko TestMain.n
|
||
|
workingDirectory: test/cffi/bin/neko
|
||
|
displayName: cffi-neko test - Run
|
||
|
|
||
|
# haxe
|
||
|
- script: haxe compile.hxml -debug -D HXCPP_M${{parameters.arch}}
|
||
|
workingDirectory: test/haxe
|
||
|
displayName: haxe test - Compile
|
||
|
- script: bin$(sep)TestMain-debug
|
||
|
workingDirectory: test/haxe
|
||
|
displayName: haxe test - Run
|
||
|
|
||
|
# telemetry, should work in debug and non-debug modes
|
||
|
- script: haxe compile.hxml -debug -D HXCPP_M${{parameters.arch}}
|
||
|
workingDirectory: test/telemetry
|
||
|
displayName: telemetry test (debug) - Compile
|
||
|
- script: bin$(sep)TestMain-debug
|
||
|
workingDirectory: test/telemetry
|
||
|
displayName: telemetry test (debug) - Run
|
||
|
- script: haxe compile.hxml -D HXCPP_M${{parameters.arch}}
|
||
|
workingDirectory: test/telemetry
|
||
|
displayName: telemetry test - Compile
|
||
|
- script: bin$(sep)TestMain
|
||
|
workingDirectory: test/telemetry
|
||
|
displayName: telemetry test - Run
|
||
|
|
||
|
# std
|
||
|
- script: haxe compile${{parameters.arch}}.hxml
|
||
|
workingDirectory: test/std
|
||
|
displayName: std test - Compile
|
||
|
- script: cpp${{parameters.arch}}$(sep)Test
|
||
|
workingDirectory: test/std
|
||
|
displayName: std test - Run
|
||
|
|
||
|
# debugger
|
||
|
- script: haxe compile.hxml -D HXCPP_M${{parameters.arch}}
|
||
|
workingDirectory: test/debugger
|
||
|
displayName: debugger test - Compile
|
||
|
- script: bin$(sep)App-debug
|
||
|
workingDirectory: test/debugger
|
||
|
displayName: debugger test - Run
|
||
|
|
||
|
# native
|
||
|
- script: haxe compile.hxml -D HXCPP_M${{parameters.arch}}
|
||
|
workingDirectory: test/native
|
||
|
displayName: native test - Compile
|
||
|
- script: bin$(sep)Native
|
||
|
workingDirectory: test/native
|
||
|
displayName: native test - Run
|
||
|
|
||
|
# haxe unit test
|
||
|
- bash: |
|
||
|
set -ex
|
||
|
HAXE_VERSION=`haxe -version`
|
||
|
HAXE_HASH=`[[ "$HAXE_VERSION" =~ ^.+\+(.+) ]] && echo ${BASH_REMATCH[1]}`
|
||
|
git clone -q https://github.com/HaxeFoundation/haxe.git
|
||
|
pushd haxe
|
||
|
git reset --hard "$HAXE_HASH"
|
||
|
git clean -fdx
|
||
|
popd
|
||
|
displayName: haxe unit test - Clone haxe repo
|
||
|
- script: haxelib install compile-cpp.hxml --always
|
||
|
workingDirectory: haxe/tests/unit
|
||
|
displayName: haxe unit test - Install haxelibs
|
||
|
- script: haxe compile-cpp.hxml -D HXCPP_M${{parameters.arch}} -D no_http
|
||
|
workingDirectory: haxe/tests/unit
|
||
|
displayName: haxe unit test - Compile
|
||
|
- script: bin$(sep)cpp$(sep)TestMain-debug
|
||
|
workingDirectory: haxe/tests/unit
|
||
|
displayName: haxe unit test - Run
|