|
@@ -8,187 +8,23 @@ variables:
|
|
|
stages:
|
|
|
- stage: BuildAndTest
|
|
|
jobs:
|
|
|
- - job: BuildLinux
|
|
|
- pool:
|
|
|
- vmImage: 'ubuntu-16.04'
|
|
|
- variables:
|
|
|
- OPAMYES: 1
|
|
|
- ADD_REVISION: 1
|
|
|
- steps:
|
|
|
- - checkout: self
|
|
|
- submodules: recursive
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- sudo add-apt-repository ppa:avsm/ppa -y # provides newer version of OCaml and OPAM
|
|
|
- sudo apt-get update -qqy
|
|
|
- sudo apt-get install -qqy ocaml-nox camlp4-extra opam libpcre3-dev zlib1g-dev libgtk2.0-dev ninja-build
|
|
|
- displayName: Install dependencies
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- unset MACHINE RELEASE SYSTEM VERSION # https://marc.info/?l=gentoo-commits&m=155026142713994
|
|
|
- mkdir $HOME/neko
|
|
|
- pushd $HOME/neko
|
|
|
- git clone --recursive https://github.com/HaxeFoundation/neko.git .
|
|
|
- cmake . -DSTATIC_DEPS=all -G Ninja
|
|
|
- ninja download_static_deps || ninja download_static_deps || ninja download_static_deps
|
|
|
- ninja
|
|
|
- sudo ninja install
|
|
|
- popd
|
|
|
- displayName: Install Neko
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- opam init
|
|
|
- opam update
|
|
|
- opam pin add haxe . --no-action
|
|
|
- opam install haxe --deps-only
|
|
|
- opam list
|
|
|
- ocamlopt -v
|
|
|
- displayName: Install OCaml libraries
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- opam config exec -- make -s STATICLINK=1 libs
|
|
|
- opam config exec -- make -s STATICLINK=1 prebuild
|
|
|
- opam config exec -- make -s -j`nproc` STATICLINK=1 haxe
|
|
|
- opam config exec -- make -s haxelib
|
|
|
- make -s package_bin
|
|
|
- ls -l out
|
|
|
- ldd -v ./haxe
|
|
|
- ldd -v ./haxelib
|
|
|
- displayName: Build Haxe
|
|
|
- - task: PublishPipelineArtifact@0
|
|
|
- inputs:
|
|
|
- artifactName: 'linuxBinaries'
|
|
|
- targetPath: out
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- make -s xmldoc
|
|
|
- cat >extra/doc/info.json <<EOL
|
|
|
- {
|
|
|
- "commit": "$(Build.SourceVersion)",
|
|
|
- "branch": "$(Build.SourceBranchName)"
|
|
|
- }
|
|
|
- EOL
|
|
|
- displayName: Build xmldoc
|
|
|
- - task: PublishPipelineArtifact@0
|
|
|
- inputs:
|
|
|
- artifactName: 'xmldoc'
|
|
|
- targetPath: extra/doc
|
|
|
+ - template: extra/azure-pipelines/build-linux.yml
|
|
|
+ parameters:
|
|
|
+ name: BuildLinux
|
|
|
|
|
|
- - job: BuildMac
|
|
|
- pool:
|
|
|
- vmImage: 'macOS-10.13'
|
|
|
- variables:
|
|
|
- OPAMYES: 1
|
|
|
- ADD_REVISION: 1
|
|
|
- steps:
|
|
|
- - checkout: self
|
|
|
- submodules: recursive
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- brew update
|
|
|
- brew bundle --file=tests/Brewfile --no-upgrade
|
|
|
- displayName: Install dependencies
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- mkdir $HOME/neko
|
|
|
- pushd $HOME/neko
|
|
|
- git clone --recursive https://github.com/HaxeFoundation/neko.git .
|
|
|
- cmake . -DSTATIC_DEPS=all -G Ninja
|
|
|
- ninja download_static_deps || ninja download_static_deps || ninja download_static_deps
|
|
|
- ninja -j 4
|
|
|
- sudo ninja install
|
|
|
- popd
|
|
|
- displayName: Install Neko
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- opam init
|
|
|
- opam update
|
|
|
- opam pin add haxe . --no-action
|
|
|
- opam install haxe --deps-only
|
|
|
- opam list
|
|
|
- ocamlopt -v
|
|
|
- displayName: Install OCaml libraries
|
|
|
- - script: |
|
|
|
- set -ex
|
|
|
- opam config exec -- make -s STATICLINK=1 "LIB_PARAMS=/usr/local/opt/zlib/lib/libz.a /usr/local/lib/libpcre.a" libs
|
|
|
- opam config exec -- make -s STATICLINK=1 "LIB_PARAMS=/usr/local/opt/zlib/lib/libz.a /usr/local/lib/libpcre.a" prebuild
|
|
|
- opam config exec -- make -s -j`sysctl -n hw.ncpu` STATICLINK=1 "LIB_PARAMS=/usr/local/opt/zlib/lib/libz.a /usr/local/lib/libpcre.a" haxe
|
|
|
- opam config exec -- make -s haxelib
|
|
|
- make -s package_bin package_installer_mac
|
|
|
- ls -l out
|
|
|
- otool -L ./haxe
|
|
|
- otool -L ./haxelib
|
|
|
- displayName: Build Haxe
|
|
|
- - task: PublishPipelineArtifact@0
|
|
|
- inputs:
|
|
|
- artifactName: 'macBinaries'
|
|
|
- targetPath: out
|
|
|
+ - template: extra/azure-pipelines/build-mac.yml
|
|
|
+ parameters:
|
|
|
+ name: BuildMac
|
|
|
|
|
|
- - job: BuildWindows
|
|
|
- pool:
|
|
|
- vmImage: 'windows-2019'
|
|
|
- variables:
|
|
|
- OPAMYES: 1
|
|
|
- ADD_REVISION: 1
|
|
|
- CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
|
|
|
- strategy:
|
|
|
- matrix:
|
|
|
- x64:
|
|
|
- ARCH: 64
|
|
|
- MINGW_ARCH: x86_64
|
|
|
- CYGWIN_SETUP: https://cygwin.com/setup-x86_64.exe
|
|
|
- CYG_ROOT: C:/cygwin64
|
|
|
- x86:
|
|
|
- ARCH: 32
|
|
|
- MINGW_ARCH: i686
|
|
|
- CYGWIN_SETUP: https://cygwin.com/setup-x86.exe
|
|
|
- CYG_ROOT: C:/cygwin
|
|
|
- steps:
|
|
|
- - checkout: self
|
|
|
- submodules: recursive
|
|
|
- - powershell: |
|
|
|
- Set-PSDebug -Trace 1
|
|
|
- choco install --no-progress nsis.portable --version 3.02 -y
|
|
|
- choco install --no-progress curl wget 7zip.portable -y
|
|
|
- displayName: Install dependencies
|
|
|
- - powershell: |
|
|
|
- Set-PSDebug -Trace 1
|
|
|
- choco install --no-progress neko --prerelease --ignore-dependencies -s 'https://ci.appveyor.com/nuget/neko' -y
|
|
|
- neko -version
|
|
|
- Set-PSDebug -Trace 0
|
|
|
- Write-Host "##vso[task.setvariable variable=NEKOPATH]C:/ProgramData/chocolatey/lib/neko"
|
|
|
- displayName: Install Neko
|
|
|
- - powershell: |
|
|
|
- Set-PSDebug -Trace 1
|
|
|
- curl.exe -fsSL -o cygwin-setup.exe --retry 3 $(CYGWIN_SETUP)
|
|
|
- Start-Process -FilePath "cygwin-setup.exe" -ArgumentList "-B -q -R $(CYG_ROOT) -l C:/tmp -s $(CYG_MIRROR) -P default -P make -P git -P zlib-devel -P rsync -P patch -P diffutils -P curl -P unzip -P tar -P m4 -P perl -P libpcre-devel -P mingw64-$(MINGW_ARCH)-zlib -P mingw64-$(MINGW_ARCH)-gcc-core -P mingw64-$(MINGW_ARCH)-pcre" -Wait
|
|
|
- curl.exe -fsSL -o "opam.tar.xz" --retry 3 https://github.com/fdopen/opam-repository-mingw/releases/download/0.0.0.2/opam$(ARCH).tar.xz
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'echo "$OLDPWD"')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && tar -xf opam.tar.xz')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && bash opam$(ARCH)/install.sh')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'opam init mingw "https://github.com/fdopen/opam-repository-mingw.git#opam2" --comp 4.07.0+mingw$(ARCH)c --switch 4.07.0+mingw$(ARCH)c --auto-setup --yes 2>&1')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'opam update --yes 2>&1')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam pin add haxe . --kind=path --no-action --yes 2>&1')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'opam install haxe --deps-only --yes 2>&1')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'opam list')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'ocamlopt -v')
|
|
|
- displayName: Install OCaml and OCaml libraries
|
|
|
- - powershell: Write-Host "##vso[task.prependpath]${env:CYG_ROOT}/usr/$(MINGW_ARCH)-w64-mingw32/sys-root/mingw/bin"
|
|
|
- displayName: Expose mingw dll files
|
|
|
- - powershell: |
|
|
|
- Set-PSDebug -Trace 1
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win libs prebuild 2>&1')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win -j`nproc` haxe 2>&1')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win haxelib 2>&1')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -f Makefile.win echo_package_files package_bin package_installer_win package_choco 2>&1')
|
|
|
- dir out
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxe.exe')
|
|
|
- & "$(CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxelib.exe')
|
|
|
- displayName: Build Haxe
|
|
|
- - task: PublishPipelineArtifact@0
|
|
|
- inputs:
|
|
|
- artifactName: 'win$(ARCH)Binaries'
|
|
|
- targetPath: out
|
|
|
+ - template: extra/azure-pipelines/build-windows.yml
|
|
|
+ parameters:
|
|
|
+ name: BuildWindows64
|
|
|
+ arch: '64'
|
|
|
+
|
|
|
+ - template: extra/azure-pipelines/build-windows.yml
|
|
|
+ parameters:
|
|
|
+ name: BuildWindows32
|
|
|
+ arch: '32'
|
|
|
|
|
|
- job: TestLinux
|
|
|
dependsOn: BuildLinux
|
|
@@ -331,7 +167,7 @@ stages:
|
|
|
displayName: Test
|
|
|
|
|
|
- job: TestWindows64
|
|
|
- dependsOn: BuildWindows
|
|
|
+ dependsOn: BuildWindows64
|
|
|
pool:
|
|
|
vmImage: 'windows-2019'
|
|
|
variables:
|