|
@@ -0,0 +1,617 @@
|
|
|
+# DO NOT EDIT. Generated from /extra/github-actions
|
|
|
+name: CI
|
|
|
+on: [push, pull_request]
|
|
|
+
|
|
|
+jobs:
|
|
|
+ windows64-build:
|
|
|
+ runs-on: windows-latest
|
|
|
+ env:
|
|
|
+ PLATFORM: windows64
|
|
|
+ OPAMYES: 1
|
|
|
+ CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
|
|
|
+ ARCH: 64
|
|
|
+ MINGW_ARCH: x86_64
|
|
|
+ CYGWIN_SETUP: https://cygwin.com/setup-x86_64.exe
|
|
|
+ CYG_ROOT: C:/cygwin64
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@master
|
|
|
+ with:
|
|
|
+ submodules: recursive
|
|
|
+
|
|
|
+ - name: Install Neko using snapshot from S3 (Windows)
|
|
|
+ if: startsWith(env.PLATFORM, 'windows')
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ $DOWNLOADDIR="./temp"
|
|
|
+ new-item -Name $DOWNLOADDIR -ItemType directory
|
|
|
+ Invoke-WebRequest https://build.haxe.org/builds/neko/$env:PLATFORM/neko_latest.zip -OutFile $DOWNLOADDIR/neko_latest.zip
|
|
|
+ Expand-Archive $DOWNLOADDIR/neko_latest.zip -DestinationPath $DOWNLOADDIR
|
|
|
+ $NEKOPATH = Get-ChildItem $DOWNLOADDIR/neko-*-*
|
|
|
+ Write-Host "::add-path::$NEKOPATH"
|
|
|
+ Write-Host "::set-env name=NEKOPATH::$NEKOPATH"
|
|
|
+
|
|
|
+ - name: Print Neko version
|
|
|
+ run: neko -version 2>&1
|
|
|
+
|
|
|
+
|
|
|
+ - name: choco install nsis
|
|
|
+ shell: pwsh
|
|
|
+ run: choco install --no-progress nsis.portable --version 3.02 -y
|
|
|
+ - name: choco install things
|
|
|
+ shell: pwsh
|
|
|
+ run: choco install --no-progress curl wget 7zip.portable -y
|
|
|
+ - name: Prepend Chocolatey path
|
|
|
+ shell: pwsh
|
|
|
+ run: Write-Host "::add-path::C:\ProgramData\chocolatey\bin"
|
|
|
+
|
|
|
+ - name: Install OCaml and OCaml libraries
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ Set-PSDebug -Trace 1
|
|
|
+ curl.exe -fsSL -o cygwin-setup.exe --retry 3 $($env:CYGWIN_SETUP)
|
|
|
+ Start-Process -FilePath "cygwin-setup.exe" -ArgumentList "-B -q -R $($env:CYG_ROOT) -l C:/tmp -s $($env: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 mbedtls-devel -P mingw64-$($env:MINGW_ARCH)-zlib -P mingw64-$($env:MINGW_ARCH)-gcc-core -P mingw64-$($env: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$($env:ARCH).tar.xz
|
|
|
+ curl.exe -fsSL -o "libmbedtls.tar.xz" --retry 3 https://github.com/Simn/mingw64-mbedtls/releases/download/2.16.3/mingw64-$($env:MINGW_ARCH)-mbedtls-2.16.3-1.tar.xz
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'echo "$OLDPWD"')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && tar -C / -xvf libmbedtls.tar.xz')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && tar -xf opam.tar.xz')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && bash opam${ARCH}/install.sh')
|
|
|
+ & "$($env: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')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'opam update --yes 2>&1')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam pin add haxe . --kind=path --no-action --yes 2>&1')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'opam install haxe --deps-only --yes 2>&1')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'opam list')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'ocamlopt -v')
|
|
|
+
|
|
|
+ - name: Expose mingw dll files
|
|
|
+ shell: pwsh
|
|
|
+ run: Write-Host "::add-path::${env:CYG_ROOT}/usr/$($env:MINGW_ARCH)-w64-mingw32/sys-root/mingw/bin"
|
|
|
+
|
|
|
+ - name: Build Haxe
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ Set-PSDebug -Trace 1
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win -j`nproc` haxe 2>&1')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win haxelib 2>&1')
|
|
|
+ & "$($env: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
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxe.exe')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxelib.exe')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && ls ./out')
|
|
|
+
|
|
|
+ - name: Upload artifact
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ name: win${{env.ARCH}}Binaries
|
|
|
+ path: out
|
|
|
+
|
|
|
+
|
|
|
+ windows-build:
|
|
|
+ runs-on: windows-latest
|
|
|
+ env:
|
|
|
+ PLATFORM: windows
|
|
|
+ OPAMYES: 1
|
|
|
+ CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
|
|
|
+ ARCH: 32
|
|
|
+ MINGW_ARCH: i686
|
|
|
+ CYGWIN_SETUP: https://cygwin.com/setup-x86.exe
|
|
|
+ CYG_ROOT: C:/cygwin
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@master
|
|
|
+ with:
|
|
|
+ submodules: recursive
|
|
|
+
|
|
|
+ - name: Install Neko using snapshot from S3 (Windows)
|
|
|
+ if: startsWith(env.PLATFORM, 'windows')
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ $DOWNLOADDIR="./temp"
|
|
|
+ new-item -Name $DOWNLOADDIR -ItemType directory
|
|
|
+ Invoke-WebRequest https://build.haxe.org/builds/neko/$env:PLATFORM/neko_latest.zip -OutFile $DOWNLOADDIR/neko_latest.zip
|
|
|
+ Expand-Archive $DOWNLOADDIR/neko_latest.zip -DestinationPath $DOWNLOADDIR
|
|
|
+ $NEKOPATH = Get-ChildItem $DOWNLOADDIR/neko-*-*
|
|
|
+ Write-Host "::add-path::$NEKOPATH"
|
|
|
+ Write-Host "::set-env name=NEKOPATH::$NEKOPATH"
|
|
|
+
|
|
|
+ - name: Print Neko version
|
|
|
+ run: neko -version 2>&1
|
|
|
+
|
|
|
+
|
|
|
+ - name: choco install nsis
|
|
|
+ shell: pwsh
|
|
|
+ run: choco install --no-progress nsis.portable --version 3.02 -y
|
|
|
+ - name: choco install things
|
|
|
+ shell: pwsh
|
|
|
+ run: choco install --no-progress curl wget 7zip.portable -y
|
|
|
+ - name: Prepend Chocolatey path
|
|
|
+ shell: pwsh
|
|
|
+ run: Write-Host "::add-path::C:\ProgramData\chocolatey\bin"
|
|
|
+
|
|
|
+ - name: Install OCaml and OCaml libraries
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ Set-PSDebug -Trace 1
|
|
|
+ curl.exe -fsSL -o cygwin-setup.exe --retry 3 $($env:CYGWIN_SETUP)
|
|
|
+ Start-Process -FilePath "cygwin-setup.exe" -ArgumentList "-B -q -R $($env:CYG_ROOT) -l C:/tmp -s $($env: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 mbedtls-devel -P mingw64-$($env:MINGW_ARCH)-zlib -P mingw64-$($env:MINGW_ARCH)-gcc-core -P mingw64-$($env: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$($env:ARCH).tar.xz
|
|
|
+ curl.exe -fsSL -o "libmbedtls.tar.xz" --retry 3 https://github.com/Simn/mingw64-mbedtls/releases/download/2.16.3/mingw64-$($env:MINGW_ARCH)-mbedtls-2.16.3-1.tar.xz
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'echo "$OLDPWD"')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && tar -C / -xvf libmbedtls.tar.xz')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && tar -xf opam.tar.xz')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && bash opam${ARCH}/install.sh')
|
|
|
+ & "$($env: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')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'opam update --yes 2>&1')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam pin add haxe . --kind=path --no-action --yes 2>&1')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'opam install haxe --deps-only --yes 2>&1')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'opam list')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'ocamlopt -v')
|
|
|
+
|
|
|
+ - name: Expose mingw dll files
|
|
|
+ shell: pwsh
|
|
|
+ run: Write-Host "::add-path::${env:CYG_ROOT}/usr/$($env:MINGW_ARCH)-w64-mingw32/sys-root/mingw/bin"
|
|
|
+
|
|
|
+ - name: Build Haxe
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ Set-PSDebug -Trace 1
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win -j`nproc` haxe 2>&1')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win haxelib 2>&1')
|
|
|
+ & "$($env: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
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxe.exe')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxelib.exe')
|
|
|
+ & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && ls ./out')
|
|
|
+
|
|
|
+ - name: Upload artifact
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ name: win${{env.ARCH}}Binaries
|
|
|
+ path: out
|
|
|
+
|
|
|
+
|
|
|
+ linux-build:
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ env:
|
|
|
+ PLATFORM: linux64
|
|
|
+ OPAMYES: 1
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@master
|
|
|
+ with:
|
|
|
+ submodules: recursive
|
|
|
+
|
|
|
+ - name: Install dependencies
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ sudo add-apt-repository ppa:avsm/ppa -y # provides OPAM 2
|
|
|
+ sudo add-apt-repository ppa:haxe/ocaml -y # provides newer version of mbedtls
|
|
|
+ sudo apt-get update -qqy
|
|
|
+ sudo apt-get install -qqy ocaml-nox camlp5 opam libpcre3-dev zlib1g-dev libgtk2.0-dev libmbedtls-dev ninja-build neko neko-dev
|
|
|
+
|
|
|
+ - name: Install OCaml libraries
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ opam init # --disable-sandboxing
|
|
|
+ opam update
|
|
|
+ opam pin add haxe . --no-action
|
|
|
+ opam install haxe --deps-only
|
|
|
+ opam list
|
|
|
+ ocamlopt -v
|
|
|
+
|
|
|
+ - name: Build Haxe
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ eval $(opam env)
|
|
|
+ opam config exec -- make -s -j`nproc` STATICLINK=1 haxe
|
|
|
+ opam config exec -- make -s haxelib
|
|
|
+ make -s package_unix
|
|
|
+ ls -l out
|
|
|
+ ldd -v ./haxe
|
|
|
+ ldd -v ./haxelib
|
|
|
+
|
|
|
+ - name: Build xmldoc
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ make -s xmldoc
|
|
|
+ cat >extra/doc/info.json <<EOL
|
|
|
+ {
|
|
|
+ "commit": "$GITHUB_SHA",
|
|
|
+ "branch": "$GITHUB_REF"
|
|
|
+ }
|
|
|
+ EOL
|
|
|
+
|
|
|
+ - name: Upload artifact
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ name: linuxBinaries
|
|
|
+ path: out
|
|
|
+
|
|
|
+
|
|
|
+ mac-build:
|
|
|
+ runs-on: macos-latest
|
|
|
+ env:
|
|
|
+ PLATFORM: mac
|
|
|
+ OPAMYES: 1
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@master
|
|
|
+ with:
|
|
|
+ submodules: recursive
|
|
|
+
|
|
|
+ - name: Install Neko using homebrew (Mac)
|
|
|
+ if: (startsWith(env.PLATFORM, 'mac'))
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ HOMEBREW_NO_AUTO_UPDATE=1
|
|
|
+ brew install neko
|
|
|
+
|
|
|
+ - name: Print Neko version
|
|
|
+ run: neko -version 2>&1
|
|
|
+
|
|
|
+
|
|
|
+ - name: Install dependencies
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ brew update
|
|
|
+ brew unlink python@2
|
|
|
+ brew bundle --file=tests/Brewfile --no-upgrade
|
|
|
+
|
|
|
+ - name: Install OCaml libraries
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ opam init # --disable-sandboxing
|
|
|
+ opam update
|
|
|
+ opam pin add haxe . --no-action
|
|
|
+ opam install haxe --deps-only
|
|
|
+ opam list
|
|
|
+ ocamlopt -v
|
|
|
+
|
|
|
+ - name: Build Haxe
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ eval $(opam env)
|
|
|
+ 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 /usr/local/lib/libmbedtls.a /usr/local/lib/libmbedcrypto.a /usr/local/lib/libmbedx509.a -cclib '-framework Security -framework CoreFoundation'" haxe
|
|
|
+ opam config exec -- make -s haxelib
|
|
|
+ make -s package_unix
|
|
|
+ ls -l out
|
|
|
+ otool -L ./haxe
|
|
|
+ otool -L ./haxelib
|
|
|
+
|
|
|
+ - name: Upload artifact
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ name: macBinaries
|
|
|
+ path: out
|
|
|
+
|
|
|
+
|
|
|
+ windows64-test:
|
|
|
+ needs: windows64-build
|
|
|
+ runs-on: windows-latest
|
|
|
+ env:
|
|
|
+ PLATFORM: windows64
|
|
|
+ TEST: ${{matrix.target}}
|
|
|
+ HXCPP_COMPILE_CACHE: ~/hxcache
|
|
|
+ ARCH: 64
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ # TODO enable lua after https://github.com/HaxeFoundation/haxe/issues/5024
|
|
|
+ target: [macro, js, hl, cpp, 'java,jvm', cs, php, python, neko]
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@master
|
|
|
+ with:
|
|
|
+ submodules: recursive
|
|
|
+ - uses: actions/download-artifact@v1
|
|
|
+ with:
|
|
|
+ name: win${{env.ARCH}}Binaries
|
|
|
+
|
|
|
+ - name: Install Neko using snapshot from S3 (Windows)
|
|
|
+ if: startsWith(env.PLATFORM, 'windows')
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ $DOWNLOADDIR="./temp"
|
|
|
+ new-item -Name $DOWNLOADDIR -ItemType directory
|
|
|
+ Invoke-WebRequest https://build.haxe.org/builds/neko/$env:PLATFORM/neko_latest.zip -OutFile $DOWNLOADDIR/neko_latest.zip
|
|
|
+ Expand-Archive $DOWNLOADDIR/neko_latest.zip -DestinationPath $DOWNLOADDIR
|
|
|
+ $NEKOPATH = Get-ChildItem $DOWNLOADDIR/neko-*-*
|
|
|
+ Write-Host "::add-path::$NEKOPATH"
|
|
|
+ Write-Host "::set-env name=NEKOPATH::$NEKOPATH"
|
|
|
+
|
|
|
+ - name: Print Neko version
|
|
|
+ run: neko -version 2>&1
|
|
|
+
|
|
|
+
|
|
|
+ # - name: Quick test
|
|
|
+ # shell: pwsh
|
|
|
+ # run: |
|
|
|
+ # $DOWNLOADDIR="./win$($env:ARCH)Binaries"
|
|
|
+ # new-item -Name $DOWNLOADDIR -ItemType directory
|
|
|
+ # Invoke-WebRequest https://build.haxe.org/builds/haxe/$env:PLATFORM/haxe_latest.zip -OutFile $DOWNLOADDIR/haxe_bin.zip
|
|
|
+
|
|
|
+ - name: Setup Haxe
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ $DOWNLOADDIR="./win$($env:ARCH)Binaries"
|
|
|
+ Expand-Archive $DOWNLOADDIR/*_bin.zip -DestinationPath $DOWNLOADDIR
|
|
|
+ Set-PSDebug -Trace 1
|
|
|
+ $HAXEPATH = Get-ChildItem $DOWNLOADDIR/haxe_*_* -Directory
|
|
|
+ Write-Host "::add-path::$HAXEPATH"
|
|
|
+ Write-Host "::set-env name=HAXELIB_ROOT::$HAXEPATH\lib"
|
|
|
+
|
|
|
+ - name: Print Haxe version
|
|
|
+ shell: pwsh
|
|
|
+ run: haxe -version
|
|
|
+
|
|
|
+ - name: "Make Python 3 be available as python3 in the cmdline"
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ Set-PSDebug -Trace 1
|
|
|
+ $pypath = python -c "import sys; print(sys.executable)"
|
|
|
+ $py3path = $pypath.replace("python.exe","python3.exe")
|
|
|
+ cmd /c mklink $py3path $pypath
|
|
|
+ python3 -V
|
|
|
+
|
|
|
+ - name: Install hererocks
|
|
|
+ if: matrix.target == 'lua'
|
|
|
+ shell: cmd
|
|
|
+ run: |
|
|
|
+ pip install hererocks
|
|
|
+ hererocks lua53 -l5.3 -rlatest
|
|
|
+ call lua53/bin/activate
|
|
|
+
|
|
|
+ - name: Setup haxelib
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ mkdir "$env:HAXELIB_ROOT"
|
|
|
+ haxelib setup "$env:HAXELIB_ROOT"
|
|
|
+
|
|
|
+ - name: Test
|
|
|
+ shell: pwsh
|
|
|
+ run: haxe RunCi.hxml
|
|
|
+ working-directory: ${{github.workspace}}/tests
|
|
|
+
|
|
|
+
|
|
|
+ windows-test:
|
|
|
+ needs: windows-build
|
|
|
+ runs-on: windows-latest
|
|
|
+ env:
|
|
|
+ PLATFORM: windows
|
|
|
+ TEST: ${{matrix.target}}
|
|
|
+ HXCPP_COMPILE_CACHE: ~/hxcache
|
|
|
+ ARCH: 32
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ # TODO jvm: https://github.com/HaxeFoundation/haxe/issues/8601
|
|
|
+ # TODO enable lua after https://github.com/HaxeFoundation/haxe/issues/5024
|
|
|
+ target: [macro, js, hl, cpp, java, cs, php, python, neko]
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@master
|
|
|
+ with:
|
|
|
+ submodules: recursive
|
|
|
+ - uses: actions/download-artifact@v1
|
|
|
+ with:
|
|
|
+ name: win${{env.ARCH}}Binaries
|
|
|
+
|
|
|
+ - name: Install Neko using snapshot from S3 (Windows)
|
|
|
+ if: startsWith(env.PLATFORM, 'windows')
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ $DOWNLOADDIR="./temp"
|
|
|
+ new-item -Name $DOWNLOADDIR -ItemType directory
|
|
|
+ Invoke-WebRequest https://build.haxe.org/builds/neko/$env:PLATFORM/neko_latest.zip -OutFile $DOWNLOADDIR/neko_latest.zip
|
|
|
+ Expand-Archive $DOWNLOADDIR/neko_latest.zip -DestinationPath $DOWNLOADDIR
|
|
|
+ $NEKOPATH = Get-ChildItem $DOWNLOADDIR/neko-*-*
|
|
|
+ Write-Host "::add-path::$NEKOPATH"
|
|
|
+ Write-Host "::set-env name=NEKOPATH::$NEKOPATH"
|
|
|
+
|
|
|
+ - name: Print Neko version
|
|
|
+ run: neko -version 2>&1
|
|
|
+
|
|
|
+
|
|
|
+ # - name: Quick test
|
|
|
+ # shell: pwsh
|
|
|
+ # run: |
|
|
|
+ # $DOWNLOADDIR="./win$($env:ARCH)Binaries"
|
|
|
+ # new-item -Name $DOWNLOADDIR -ItemType directory
|
|
|
+ # Invoke-WebRequest https://build.haxe.org/builds/haxe/$env:PLATFORM/haxe_latest.zip -OutFile $DOWNLOADDIR/haxe_bin.zip
|
|
|
+
|
|
|
+ - name: Setup Haxe
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ $DOWNLOADDIR="./win$($env:ARCH)Binaries"
|
|
|
+ Expand-Archive $DOWNLOADDIR/*_bin.zip -DestinationPath $DOWNLOADDIR
|
|
|
+ Set-PSDebug -Trace 1
|
|
|
+ $HAXEPATH = Get-ChildItem $DOWNLOADDIR/haxe_*_* -Directory
|
|
|
+ Write-Host "::add-path::$HAXEPATH"
|
|
|
+ Write-Host "::set-env name=HAXELIB_ROOT::$HAXEPATH\lib"
|
|
|
+
|
|
|
+ - name: Print Haxe version
|
|
|
+ shell: pwsh
|
|
|
+ run: haxe -version
|
|
|
+
|
|
|
+ - name: "Make Python 3 be available as python3 in the cmdline"
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ Set-PSDebug -Trace 1
|
|
|
+ $pypath = python -c "import sys; print(sys.executable)"
|
|
|
+ $py3path = $pypath.replace("python.exe","python3.exe")
|
|
|
+ cmd /c mklink $py3path $pypath
|
|
|
+ python3 -V
|
|
|
+
|
|
|
+ - name: Install hererocks
|
|
|
+ if: matrix.target == 'lua'
|
|
|
+ shell: cmd
|
|
|
+ run: |
|
|
|
+ pip install hererocks
|
|
|
+ hererocks lua53 -l5.3 -rlatest
|
|
|
+ call lua53/bin/activate
|
|
|
+
|
|
|
+ - name: Setup haxelib
|
|
|
+ shell: pwsh
|
|
|
+ run: |
|
|
|
+ mkdir "$env:HAXELIB_ROOT"
|
|
|
+ haxelib setup "$env:HAXELIB_ROOT"
|
|
|
+
|
|
|
+ - name: Test
|
|
|
+ shell: pwsh
|
|
|
+ run: haxe RunCi.hxml
|
|
|
+ working-directory: ${{github.workspace}}/tests
|
|
|
+
|
|
|
+
|
|
|
+ linux-test:
|
|
|
+ needs: linux-build
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ env:
|
|
|
+ PLATFORM: linux64
|
|
|
+ TEST: ${{matrix.target}}
|
|
|
+ HXCPP_COMPILE_CACHE: ~/hxcache
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ target: [macro, js, hl, cpp, 'java,jvm', cs, php, python, lua, flash9, neko]
|
|
|
+ include:
|
|
|
+ - target: js
|
|
|
+ # SAUCE: 1
|
|
|
+ # SAUCE_TUNNEL_ID: 'linux-test'
|
|
|
+ # SAUCE_BUILD: '${{env.GITHUB_RUN_NUMBER}}' # $(Build.BuildNumber)
|
|
|
+ - target: hl
|
|
|
+ APT_PACKAGES: cmake ninja-build libturbojpeg-dev
|
|
|
+ - target: cpp
|
|
|
+ APT_PACKAGES: gcc-multilib g++-multilib
|
|
|
+ - target: lua
|
|
|
+ APT_PACKAGES: ncurses-dev
|
|
|
+ - target: flash9
|
|
|
+ APT_PACKAGES: libglib2.0 libfreetype6 xvfb
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@master
|
|
|
+ with:
|
|
|
+ submodules: recursive
|
|
|
+ - uses: actions/download-artifact@v1
|
|
|
+ with:
|
|
|
+ name: linuxBinaries
|
|
|
+
|
|
|
+ - name: Install Neko using apt-get (Linux)
|
|
|
+ if: (startsWith(env.PLATFORM, 'linux'))
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ sudo add-apt-repository ppa:haxe/snapshots -y
|
|
|
+ sudo apt-get update -qqy
|
|
|
+ sudo apt-get install -qqy neko
|
|
|
+
|
|
|
+ - name: Print Neko version
|
|
|
+ run: neko -version 2>&1
|
|
|
+
|
|
|
+
|
|
|
+ - name: Setup Haxe
|
|
|
+ run: |
|
|
|
+ # mkdir ./linuxBinaries
|
|
|
+ # curl -sSL https://build.haxe.org/builds/haxe/linux64/haxe_latest.tar.gz -o ./linuxBinaries/haxe_bin.tar.gz
|
|
|
+
|
|
|
+ sudo apt install -qqy libmbedtls-dev
|
|
|
+
|
|
|
+ set -ex
|
|
|
+ tar -xf linuxBinaries/*_bin.tar.gz -C linuxBinaries --strip-components=1
|
|
|
+ sudo mkdir -p /usr/local/bin/
|
|
|
+ sudo mkdir -p /usr/local/share/haxe/
|
|
|
+ sudo ln -s `pwd`/linuxBinaries/haxe /usr/local/bin/haxe
|
|
|
+ sudo ln -s `pwd`/linuxBinaries/haxelib /usr/local/bin/haxelib
|
|
|
+ sudo ln -s `pwd`/linuxBinaries/std /usr/local/share/haxe/std
|
|
|
+
|
|
|
+ - name: Print Haxe version
|
|
|
+ run: haxe -version
|
|
|
+
|
|
|
+ - name: Setup haxelib
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ mkdir ~/haxelib
|
|
|
+ haxelib setup ~/haxelib
|
|
|
+
|
|
|
+ - name: Install apt packages
|
|
|
+ if: matrix.APT_PACKAGES
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ sudo apt update -qqy
|
|
|
+ sudo apt install -qqy ${{matrix.APT_PACKAGES}}
|
|
|
+
|
|
|
+ - name: Flash setup
|
|
|
+ if: matrix.target == 'flash9'
|
|
|
+ run: export DISPLAY=:99.0
|
|
|
+
|
|
|
+ - name: Test
|
|
|
+ if: success() && !(matrix.SAUCE && matrix.SAUCE_ACCESS_KEY)
|
|
|
+ run: haxe RunCi.hxml
|
|
|
+ working-directory: ${{github.workspace}}/tests
|
|
|
+
|
|
|
+ - name: Test (with SauceLabs)
|
|
|
+ if: matrix.target == 'js' && success() && matrix.SAUCE && matrix.SAUCE_ACCESS_KEY
|
|
|
+ run: haxe RunCi.hxml
|
|
|
+ working-directory: ${{github.workspace}}/tests
|
|
|
+ env:
|
|
|
+ SAUCE_ACCESS_KEY: matrix.SAUCE_ACCESS_KEY
|
|
|
+
|
|
|
+
|
|
|
+ mac-test:
|
|
|
+ needs: mac-build
|
|
|
+ runs-on: macos-latest
|
|
|
+ env:
|
|
|
+ PLATFORM: mac
|
|
|
+ TEST: ${{matrix.target}}
|
|
|
+ HXCPP_COMPILE_CACHE: ~/hxcache
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ target: [macro, js, hl, cpp, 'java,jvm', cs, php, python, lua, flash9, neko]
|
|
|
+ include:
|
|
|
+ - target: hl
|
|
|
+ BREW_PACKAGES: ninja
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@master
|
|
|
+ with:
|
|
|
+ submodules: recursive
|
|
|
+ - uses: actions/download-artifact@v1
|
|
|
+ with:
|
|
|
+ name: macBinaries
|
|
|
+
|
|
|
+ - name: Install Neko using homebrew (Mac)
|
|
|
+ if: (startsWith(env.PLATFORM, 'mac'))
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ HOMEBREW_NO_AUTO_UPDATE=1
|
|
|
+ brew install neko
|
|
|
+
|
|
|
+ - name: Print Neko version
|
|
|
+ run: neko -version 2>&1
|
|
|
+
|
|
|
+
|
|
|
+ - name: Setup Haxe
|
|
|
+ run: |
|
|
|
+ # mkdir ./macBinaries
|
|
|
+ # curl -sSL https://build.haxe.org/builds/haxe/mac/haxe_latest.tar.gz -o ./macBinaries/haxe_bin.tar.gz
|
|
|
+
|
|
|
+ set -ex
|
|
|
+ tar -xf macBinaries/*_bin.tar.gz -C macBinaries --strip-components=1
|
|
|
+ sudo mkdir -p /usr/local/bin/
|
|
|
+ sudo mkdir -p /usr/local/share/haxe/
|
|
|
+ sudo ln -s `pwd`/macBinaries/haxe /usr/local/bin/haxe
|
|
|
+ sudo ln -s `pwd`/macBinaries/haxelib /usr/local/bin/haxelib
|
|
|
+ sudo ln -s `pwd`/macBinaries/std /usr/local/share/haxe/std
|
|
|
+
|
|
|
+ - name: Print Haxe version
|
|
|
+ run: haxe -version
|
|
|
+
|
|
|
+ - name: Setup haxelib
|
|
|
+ run: |
|
|
|
+ set -ex
|
|
|
+ mkdir ~/haxelib
|
|
|
+ haxelib setup ~/haxelib
|
|
|
+
|
|
|
+ - name: Install homebrew packages
|
|
|
+ if: matrix.BREW_PACKAGES
|
|
|
+ run: brew install ${{matrix.BREW_PACKAGES}}
|
|
|
+
|
|
|
+ - name: Test
|
|
|
+ run: |
|
|
|
+ # disable invalid Unicode filenames on APFS
|
|
|
+ echo "" > sys/compile-fs.hxml
|
|
|
+ haxe RunCi.hxml
|
|
|
+ working-directory: ${{github.workspace}}/tests
|
|
|
+
|