main.yml 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051
  1. # DO NOT EDIT. Generated from /extra/github-actions
  2. # TODO: support skip ci (https://github.community/t/github-actions-does-not-respect-skip-ci/17325/8)
  3. name: CI
  4. on: [push, pull_request]
  5. jobs:
  6. windows64-build:
  7. runs-on: windows-latest
  8. env:
  9. ACTIONS_ALLOW_UNSECURE_COMMANDS: true
  10. PLATFORM: windows64
  11. ARCH: 64
  12. MINGW_ARCH: x86_64
  13. CYG_ROOT: D:\cygwin
  14. steps:
  15. - uses: actions/checkout@main
  16. with:
  17. submodules: recursive
  18. - name: Use GNU Tar from msys
  19. run: |
  20. echo "C:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
  21. rm C:\msys64\usr\bin\bash.exe
  22. - name: choco install nsis
  23. uses: nick-invision/retry@v1
  24. with:
  25. timeout_minutes: 10
  26. max_attempts: 10
  27. command: choco install --no-progress nsis.portable --version 3.02 -y
  28. - name: choco install things
  29. shell: pwsh
  30. run: choco install --no-progress curl wget 7zip.portable -y
  31. - name: Prepend Chocolatey path
  32. shell: pwsh
  33. run: Write-Host "::add-path::C:\ProgramData\chocolatey\bin"
  34. - name: Install Neko from S3
  35. shell: pwsh
  36. run: |
  37. Invoke-WebRequest https://build.haxe.org/builds/neko/$env:PLATFORM/neko_latest.zip -OutFile $env:RUNNER_TEMP/neko_latest.zip
  38. Expand-Archive $env:RUNNER_TEMP/neko_latest.zip -DestinationPath $env:RUNNER_TEMP
  39. $NEKOPATH = Get-ChildItem $env:RUNNER_TEMP/neko-*-*
  40. echo "$NEKOPATH" >> $env:GITHUB_PATH
  41. echo "NEKOPATH=$NEKOPATH" >> $env:GITHUB_ENV
  42. - name: Print Neko version
  43. run: neko -version 2>&1
  44. - name: Setup ocaml
  45. uses: ocaml/setup-ocaml@v2
  46. with:
  47. ocaml-compiler: 4.08.1
  48. opam-repositories: |
  49. opam-repository-mingw: https://github.com/ocaml-opam/opam-repository-mingw.git#sunset
  50. default: https://github.com/ocaml/opam-repository.git
  51. opam-local-packages: |
  52. haxe.opam
  53. - name: Install dependencies
  54. shell: pwsh
  55. run: |
  56. Set-PSDebug -Trace 1
  57. 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
  58. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'curl -L https://cpanmin.us | perl - App::cpanminus')
  59. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cpanm IPC::System::Simple module')
  60. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cpanm String::ShellQuote')
  61. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'echo "$OLDPWD"')
  62. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && tar -C / -xvf libmbedtls.tar.xz')
  63. - name: Install OCaml libraries
  64. shell: pwsh
  65. run: |
  66. Set-PSDebug -Trace 1
  67. opam install haxe --deps-only
  68. opam list
  69. - name: Expose mingw dll files
  70. shell: pwsh
  71. run: Write-Host "::add-path::${env:CYG_ROOT}/usr/$($env:MINGW_ARCH)-w64-mingw32/sys-root/mingw/bin"
  72. # required to be able to retrieve the revision
  73. - name: Mark directory as safe
  74. shell: pwsh
  75. run: |
  76. Set-PSDebug -Trace 1
  77. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'git config --global --add safe.directory "$OLDPWD"')
  78. - name: Set ADD_REVISION=1 for non-release
  79. if: ${{ !startsWith(github.ref, 'refs/tags/') }}
  80. shell: pwsh
  81. run: echo "ADD_REVISION=1" >> $Env:GITHUB_ENV
  82. - name: Build Haxe
  83. shell: pwsh
  84. run: |
  85. Set-PSDebug -Trace 1
  86. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win -j`nproc` haxe 2>&1')
  87. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win haxelib 2>&1')
  88. & "$($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')
  89. dir out
  90. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxe.exe')
  91. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxelib.exe')
  92. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && ls ./out')
  93. - name: Check artifact
  94. shell: bash
  95. run: |
  96. ls out
  97. # Output should contain binaries zip, installer zip and nupkg
  98. [ $(ls -1 out | wc -l) -eq "3" ]
  99. - name: Upload artifact
  100. uses: actions/[email protected]
  101. with:
  102. name: win${{env.ARCH}}Binaries
  103. path: out
  104. windows-build:
  105. runs-on: windows-latest
  106. env:
  107. ACTIONS_ALLOW_UNSECURE_COMMANDS: true
  108. PLATFORM: windows
  109. ARCH: 32
  110. MINGW_ARCH: i686
  111. CYG_ROOT: D:\cygwin
  112. steps:
  113. - uses: actions/checkout@main
  114. with:
  115. submodules: recursive
  116. - name: Use GNU Tar from msys
  117. run: |
  118. echo "C:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
  119. rm C:\msys64\usr\bin\bash.exe
  120. - name: choco install nsis
  121. uses: nick-invision/retry@v1
  122. with:
  123. timeout_minutes: 10
  124. max_attempts: 10
  125. command: choco install --no-progress nsis.portable --version 3.02 -y
  126. - name: choco install things
  127. shell: pwsh
  128. run: choco install --no-progress curl wget 7zip.portable -y
  129. - name: Prepend Chocolatey path
  130. shell: pwsh
  131. run: Write-Host "::add-path::C:\ProgramData\chocolatey\bin"
  132. - name: Install Neko from S3
  133. shell: pwsh
  134. run: |
  135. Invoke-WebRequest https://build.haxe.org/builds/neko/$env:PLATFORM/neko_latest.zip -OutFile $env:RUNNER_TEMP/neko_latest.zip
  136. Expand-Archive $env:RUNNER_TEMP/neko_latest.zip -DestinationPath $env:RUNNER_TEMP
  137. $NEKOPATH = Get-ChildItem $env:RUNNER_TEMP/neko-*-*
  138. echo "$NEKOPATH" >> $env:GITHUB_PATH
  139. echo "NEKOPATH=$NEKOPATH" >> $env:GITHUB_ENV
  140. - name: Print Neko version
  141. run: neko -version 2>&1
  142. - name: Setup ocaml
  143. id: ocaml
  144. continue-on-error: true
  145. uses: kLabz/setup-ocaml@win32
  146. with:
  147. ocaml-compiler: 4.08.1
  148. opam-depext: false
  149. opam-repositories: |
  150. opam-repository-mingw: https://github.com/ocaml-opam/opam-repository-mingw.git#sunset
  151. default: https://github.com/ocaml/opam-repository.git
  152. opam-local-packages: |
  153. haxe.opam
  154. cache-prefix: w32-v1
  155. # TODO make it work on first try
  156. # (when cygwin cache doesn't exist, ocaml install fails with a curl error)
  157. - name: Setup ocaml (second chance)
  158. if: steps.ocaml.outcome == 'failure'
  159. uses: kLabz/setup-ocaml@win32
  160. with:
  161. ocaml-compiler: 4.08.1
  162. opam-depext: false
  163. opam-repositories: |
  164. opam-repository-mingw: https://github.com/ocaml-opam/opam-repository-mingw.git#sunset
  165. default: https://github.com/ocaml/opam-repository.git
  166. opam-local-packages: |
  167. haxe.opam
  168. cache-prefix: w32-v1
  169. - name: Install dependencies
  170. shell: pwsh
  171. run: |
  172. Set-PSDebug -Trace 1
  173. 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
  174. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'curl -L https://cpanmin.us | perl - App::cpanminus')
  175. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cpanm IPC::System::Simple module')
  176. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cpanm String::ShellQuote')
  177. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'echo "$OLDPWD"')
  178. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && tar -C / -xvf libmbedtls.tar.xz')
  179. - name: Install OCaml libraries
  180. shell: pwsh
  181. run: |
  182. Set-PSDebug -Trace 1
  183. opam install haxe --deps-only
  184. opam list
  185. - name: Expose mingw dll files
  186. shell: pwsh
  187. run: Write-Host "::add-path::${env:CYG_ROOT}/usr/$($env:MINGW_ARCH)-w64-mingw32/sys-root/mingw/bin"
  188. # required to be able to retrieve the revision
  189. - name: Mark directory as safe
  190. shell: pwsh
  191. run: |
  192. Set-PSDebug -Trace 1
  193. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'git config --global --add safe.directory "$OLDPWD"')
  194. - name: Set ADD_REVISION=1 for non-release
  195. if: ${{ !startsWith(github.ref, 'refs/tags/') }}
  196. shell: pwsh
  197. run: echo "ADD_REVISION=1" >> $Env:GITHUB_ENV
  198. - name: Build Haxe
  199. shell: pwsh
  200. run: |
  201. Set-PSDebug -Trace 1
  202. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win -j`nproc` haxe 2>&1')
  203. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && opam config exec -- make -s -f Makefile.win haxelib 2>&1')
  204. & "$($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')
  205. dir out
  206. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxe.exe')
  207. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && cygcheck ./haxelib.exe')
  208. & "$($env:CYG_ROOT)/bin/bash.exe" @('-lc', 'cd "$OLDPWD" && ls ./out')
  209. - name: Check artifact
  210. shell: bash
  211. run: |
  212. ls out
  213. # Output should contain binaries zip, installer zip and nupkg
  214. [ $(ls -1 out | wc -l) -eq "3" ]
  215. - name: Upload artifact
  216. uses: actions/[email protected]
  217. with:
  218. name: win${{env.ARCH}}Binaries
  219. path: out
  220. linux-build:
  221. runs-on: ubuntu-20.04
  222. env:
  223. PLATFORM: linux64
  224. OPAMYES: 1
  225. steps:
  226. - uses: actions/checkout@main
  227. with:
  228. submodules: recursive
  229. - name: Cache opam
  230. id: cache-opam
  231. uses: actions/[email protected]
  232. with:
  233. path: ~/.opam/
  234. key: ${{ runner.os }}-${{ hashFiles('./haxe.opam', './libs/') }}-2
  235. - name: Install Neko from S3
  236. run: |
  237. set -ex
  238. curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o $RUNNER_TEMP/neko_latest.tar.gz
  239. tar -xf $RUNNER_TEMP/neko_latest.tar.gz -C $RUNNER_TEMP
  240. NEKOPATH=`echo $RUNNER_TEMP/neko-*-*`
  241. sudo mkdir -p /usr/local/bin
  242. sudo mkdir -p /usr/local/lib/neko
  243. sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/
  244. sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/
  245. sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/
  246. echo "NEKOPATH=$NEKOPATH" >> $GITHUB_ENV
  247. - name: Print Neko version
  248. run: neko -version 2>&1
  249. - name: Install dependencies
  250. run: |
  251. set -ex
  252. sudo add-apt-repository ppa:avsm/ppa -y # provides OPAM 2
  253. sudo add-apt-repository ppa:haxe/ocaml -y # provides newer version of mbedtls
  254. sudo apt-get update -qqy
  255. sudo apt-get install -qqy ocaml-nox camlp5 opam libpcre2-dev zlib1g-dev libgtk2.0-dev libmbedtls-dev ninja-build libstring-shellquote-perl libipc-system-simple-perl
  256. - name: Install OCaml libraries
  257. if: steps.cache-opam.outputs.cache-hit != 'true'
  258. run: |
  259. set -ex
  260. opam init # --disable-sandboxing
  261. opam update
  262. opam pin add haxe . --no-action
  263. opam install haxe --deps-only --assume-depexts
  264. opam list
  265. ocamlopt -v
  266. - name: Set ADD_REVISION=1 for non-release
  267. if: ${{ !startsWith(github.ref, 'refs/tags/') }}
  268. run: echo "ADD_REVISION=1" >> $GITHUB_ENV
  269. - name: Build Haxe
  270. run: |
  271. set -ex
  272. eval $(opam env)
  273. opam config exec -- make -s -j`nproc` STATICLINK=1 haxe
  274. opam config exec -- make -s haxelib
  275. make -s package_unix
  276. ls -l out
  277. ldd -v ./haxe
  278. ldd -v ./haxelib
  279. # https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
  280. - name: Extract branch name
  281. id: extract_branch
  282. shell: bash
  283. run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
  284. - name: Build xmldoc
  285. run: |
  286. set -ex
  287. make -s xmldoc
  288. cat >extra/doc/info.json <<EOL
  289. {
  290. "commit": "$GITHUB_SHA",
  291. "branch": "${{ steps.extract_branch.outputs.branch }}"
  292. }
  293. EOL
  294. - name: Upload artifact
  295. uses: actions/[email protected]
  296. with:
  297. name: linuxBinaries
  298. path: out
  299. - name: Upload xmldoc artifact
  300. uses: actions/[email protected]
  301. with:
  302. name: xmldoc
  303. path: extra/doc
  304. linux-test:
  305. needs: linux-build
  306. runs-on: ubuntu-20.04
  307. env:
  308. PLATFORM: linux64
  309. TEST: ${{matrix.target}}
  310. HXCPP_COMPILE_CACHE: ~/hxcache
  311. HAXE_STD_PATH: /usr/local/share/haxe/std
  312. strategy:
  313. fail-fast: false
  314. matrix:
  315. target: [macro, js, hl, cpp, 'java,jvm', cs, php, python, lua, flash, neko]
  316. include:
  317. - target: hl
  318. APT_PACKAGES: cmake ninja-build libturbojpeg-dev
  319. - target: cpp
  320. APT_PACKAGES: gcc-multilib g++-multilib
  321. - target: lua
  322. APT_PACKAGES: ncurses-dev
  323. - target: flash
  324. APT_PACKAGES: libglib2.0-0 libgtk2.0-0 libfreetype6 xvfb
  325. steps:
  326. - uses: actions/checkout@main
  327. with:
  328. submodules: recursive
  329. - uses: actions/download-artifact@v1
  330. with:
  331. name: linuxBinaries
  332. - name: Install Neko from S3
  333. run: |
  334. set -ex
  335. curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o $RUNNER_TEMP/neko_latest.tar.gz
  336. tar -xf $RUNNER_TEMP/neko_latest.tar.gz -C $RUNNER_TEMP
  337. NEKOPATH=`echo $RUNNER_TEMP/neko-*-*`
  338. sudo mkdir -p /usr/local/bin
  339. sudo mkdir -p /usr/local/lib/neko
  340. sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/
  341. sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/
  342. sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/
  343. echo "NEKOPATH=$NEKOPATH" >> $GITHUB_ENV
  344. - name: Print Neko version
  345. run: neko -version 2>&1
  346. - name: Setup Haxe
  347. run: |
  348. sudo apt install -qqy libmbedtls-dev
  349. set -ex
  350. tar -xf linuxBinaries/*_bin.tar.gz -C linuxBinaries --strip-components=1
  351. sudo mkdir -p /usr/local/bin/
  352. sudo mkdir -p /usr/local/share/haxe/
  353. sudo ln -s `pwd`/linuxBinaries/haxe /usr/local/bin/haxe
  354. sudo ln -s `pwd`/linuxBinaries/haxelib /usr/local/bin/haxelib
  355. sudo ln -s `pwd`/linuxBinaries/std /usr/local/share/haxe/std
  356. - name: Print Haxe version
  357. run: haxe -version
  358. - name: Setup haxelib
  359. run: |
  360. set -ex
  361. mkdir ~/haxelib
  362. haxelib setup ~/haxelib
  363. - name: Install apt packages
  364. if: matrix.APT_PACKAGES
  365. run: |
  366. set -ex
  367. sudo apt update -qqy
  368. sudo apt install -qqy ${{matrix.APT_PACKAGES}}
  369. - name: Flash setup
  370. if: matrix.target == 'flash'
  371. run: export DISPLAY=:99.0
  372. - name: Test
  373. run: haxe RunCi.hxml
  374. working-directory: ${{github.workspace}}/tests
  375. test-docgen:
  376. needs: linux-build
  377. runs-on: ubuntu-20.04
  378. env:
  379. PLATFORM: linux64
  380. HXCPP_COMPILE_CACHE: ~/hxcache
  381. steps:
  382. - uses: actions/checkout@main
  383. with:
  384. submodules: recursive
  385. - uses: actions/download-artifact@v1
  386. with:
  387. name: linuxBinaries
  388. - name: Download xmldoc artifact
  389. uses: actions/download-artifact@v2
  390. with:
  391. name: xmldoc
  392. path: xmldoc
  393. - name: Install Neko from S3
  394. run: |
  395. set -ex
  396. curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o $RUNNER_TEMP/neko_latest.tar.gz
  397. tar -xf $RUNNER_TEMP/neko_latest.tar.gz -C $RUNNER_TEMP
  398. NEKOPATH=`echo $RUNNER_TEMP/neko-*-*`
  399. sudo mkdir -p /usr/local/bin
  400. sudo mkdir -p /usr/local/lib/neko
  401. sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/
  402. sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/
  403. sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/
  404. echo "NEKOPATH=$NEKOPATH" >> $GITHUB_ENV
  405. - name: Print Neko version
  406. run: neko -version 2>&1
  407. - name: Setup Haxe
  408. run: |
  409. sudo apt install -qqy libmbedtls-dev
  410. set -ex
  411. tar -xf linuxBinaries/*_bin.tar.gz -C linuxBinaries --strip-components=1
  412. sudo mkdir -p /usr/local/bin/
  413. sudo mkdir -p /usr/local/share/haxe/
  414. sudo ln -s `pwd`/linuxBinaries/haxe /usr/local/bin/haxe
  415. sudo ln -s `pwd`/linuxBinaries/haxelib /usr/local/bin/haxelib
  416. sudo ln -s `pwd`/linuxBinaries/std /usr/local/share/haxe/std
  417. - name: Print Haxe version
  418. run: haxe -version
  419. - name: Setup haxelib
  420. run: |
  421. set -ex
  422. mkdir ~/haxelib
  423. haxelib setup ~/haxelib
  424. - name: Test documentation generation
  425. run: |
  426. set -ex
  427. haxelib git dox https://github.com/HaxeFoundation/dox.git
  428. haxelib git hxtemplo https://github.com/Simn/hxtemplo.git
  429. haxelib git hxargs https://github.com/Simn/hxargs.git
  430. haxelib git markdown https://github.com/dpeek/haxe-markdown.git
  431. haxelib git hxcpp https://github.com/HaxeFoundation/hxcpp.git
  432. cd $(haxelib libpath hxcpp)/tools/hxcpp
  433. haxe compile.hxml
  434. cd -
  435. haxe dox.hxml
  436. mkdir resources
  437. cp ../../src-json/* resources
  438. cpp/Dox -i ../../xmldoc -ex microsoft -ex javax -ex cs.internal -theme $(haxelib libpath dox)/themes/default
  439. working-directory: ${{github.workspace}}/tests/docgen
  440. linux-arm64:
  441. runs-on: ubuntu-20.04
  442. permissions:
  443. packages: write
  444. env:
  445. FORCE_COLOR: 1
  446. steps:
  447. - name: Login to GitHub Container Registry
  448. uses: docker/login-action@v1
  449. with:
  450. registry: ghcr.io
  451. username: ${{ github.actor }}
  452. password: ${{ secrets.GITHUB_TOKEN }}
  453. - name: Install Earthly
  454. run: sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.6.13/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly && /usr/local/bin/earthly bootstrap --with-autocomplete'
  455. - name: Set up QEMU
  456. id: qemu
  457. uses: docker/setup-qemu-action@v1
  458. with:
  459. image: tonistiigi/binfmt:latest
  460. platforms: all
  461. - uses: actions/checkout@main
  462. with:
  463. submodules: recursive
  464. - name: Set CONTAINER_ vars
  465. run: |
  466. echo "CONTAINER_REG=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV;
  467. echo "CONTAINER_TAG=$(echo ${{ github.ref_name }} | sed -e 's/[^A-Za-z0-9\.]/-/g')" >> $GITHUB_ENV;
  468. - name: Build devcontainer
  469. run: earthly --platform=linux/arm64 +devcontainer --IMAGE_NAME="ghcr.io/${CONTAINER_REG}_devcontainer" --IMAGE_TAG="${CONTAINER_TAG}-arm64" --IMAGE_CACHE="ghcr.io/haxefoundation/haxe_devcontainer:development-arm64"
  470. env:
  471. EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
  472. EARTHLY_USE_INLINE_CACHE: true
  473. EARTHLY_SAVE_INLINE_CACHE: true
  474. - name: Set ADD_REVISION=1 for non-release
  475. if: ${{ !startsWith(github.ref, 'refs/tags/') }}
  476. run: echo "ADD_REVISION=1" >> $GITHUB_ENV
  477. - name: Build
  478. run: earthly --platform=linux/arm64 +build --ADD_REVISION="$ADD_REVISION" --SET_SAFE_DIRECTORY="true"
  479. env:
  480. EARTHLY_PUSH: "${{ github.event_name == 'push' }}"
  481. EARTHLY_REMOTE_CACHE: "ghcr.io/${{env.CONTAINER_REG}}_cache:build-${{env.CONTAINER_TAG}}-arm64"
  482. - name: Upload artifact
  483. uses: actions/[email protected]
  484. with:
  485. name: linuxArm64Binaries
  486. path: out/linux/arm64
  487. mac-build:
  488. runs-on: macos-latest
  489. env:
  490. PLATFORM: mac
  491. OPAMYES: 1
  492. MACOSX_DEPLOYMENT_TARGET: 10.13
  493. steps:
  494. - uses: actions/checkout@main
  495. with:
  496. submodules: recursive
  497. - name: Cache opam
  498. id: cache-opam
  499. uses: actions/[email protected]
  500. with:
  501. path: ~/.opam/
  502. key: ${{ runner.os }}-${{ hashFiles('./haxe.opam', './libs/') }}-2
  503. - name: Install Neko from S3
  504. run: |
  505. set -ex
  506. curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o $RUNNER_TEMP/neko_latest.tar.gz
  507. tar -xf $RUNNER_TEMP/neko_latest.tar.gz -C $RUNNER_TEMP
  508. NEKOPATH=`echo $RUNNER_TEMP/neko-*-*`
  509. sudo mkdir -p /usr/local/bin
  510. sudo mkdir -p /usr/local/lib/neko
  511. sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/
  512. sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/
  513. sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/
  514. echo "NEKOPATH=$NEKOPATH" >> $GITHUB_ENV
  515. - name: Print Neko version
  516. run: neko -version 2>&1
  517. - name: Install dependencies
  518. env:
  519. # For compatibility with macOS 10.13
  520. ZLIB_VERSION: 1.2.13
  521. MBEDTLS_VERSION: 2.25.0
  522. PCRE2_VERSION: 10.42
  523. run: |
  524. set -ex
  525. brew uninstall [email protected] || echo
  526. brew uninstall [email protected] || echo
  527. brew untap local/openssl || echo
  528. brew untap local/python2 || echo
  529. brew update
  530. # brew unlink python@2
  531. brew bundle --file=tests/Brewfile --no-upgrade || brew link --overwrite awscli
  532. brew install libunistring
  533. brew install cpanminus
  534. cpanm IPC::System::Simple
  535. cpanm String::ShellQuote
  536. curl -L https://www.zlib.net/zlib-$ZLIB_VERSION.tar.gz | tar xz
  537. cd zlib-$ZLIB_VERSION
  538. ./configure
  539. make && make install
  540. cd ..
  541. curl -L https://github.com/ARMmbed/mbedtls/archive/v$MBEDTLS_VERSION.tar.gz | tar xz
  542. cd mbedtls-$MBEDTLS_VERSION
  543. make && make install
  544. cd ..
  545. curl -L https://github.com/PCRE2Project/pcre2/releases/download/pcre2-$PCRE2_VERSION/pcre2-$PCRE2_VERSION.tar.gz | tar xz
  546. cd pcre2-$PCRE2_VERSION
  547. ./configure --enable-unicode --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode-properties --enable-pcre2grep-libz --enable-pcre2grep-libbz2 --enable-jit
  548. make && make install
  549. cd ..
  550. - name: Install OCaml libraries
  551. if: steps.cache-opam.outputs.cache-hit != 'true'
  552. run: |
  553. set -ex
  554. opam init # --disable-sandboxing
  555. opam update
  556. opam switch create 4.08.1
  557. eval $(opam env)
  558. opam env
  559. opam pin add ctypes 0.17.1 --yes
  560. opam pin add haxe . --no-action
  561. opam install haxe --deps-only --assume-depexts
  562. opam list
  563. ocamlopt -v
  564. - name: Set ADD_REVISION=1 for non-release
  565. if: ${{ !startsWith(github.ref, 'refs/tags/') }}
  566. run: echo "ADD_REVISION=1" >> $GITHUB_ENV
  567. - name: Build Haxe
  568. run: |
  569. set -ex
  570. eval $(opam env)
  571. opam config exec -- make -s -j`sysctl -n hw.ncpu` STATICLINK=1 "LIB_PARAMS=/usr/local/lib/libz.a /usr/local/lib/libpcre2-8.a /usr/local/lib/libmbedtls.a /usr/local/lib/libmbedcrypto.a /usr/local/lib/libmbedx509.a -cclib '-framework Security -framework CoreFoundation'" haxe
  572. opam config exec -- make -s haxelib
  573. make -s package_unix package_installer_mac
  574. ls -l out
  575. otool -L ./haxe
  576. otool -L ./haxelib
  577. - name: Upload artifact
  578. uses: actions/[email protected]
  579. with:
  580. name: macBinaries
  581. path: out
  582. windows64-test:
  583. needs: windows64-build
  584. runs-on: windows-latest
  585. env:
  586. ACTIONS_ALLOW_UNSECURE_COMMANDS: true
  587. PLATFORM: windows64
  588. TEST: ${{matrix.target}}
  589. HXCPP_COMPILE_CACHE: ~/hxcache
  590. ARCH: 64
  591. strategy:
  592. fail-fast: false
  593. matrix:
  594. # TODO enable lua after https://github.com/HaxeFoundation/haxe/issues/10919
  595. target: [macro, js, hl, cpp, 'java,jvm', cs, php, python, flash, neko]
  596. steps:
  597. - uses: actions/checkout@main
  598. with:
  599. submodules: recursive
  600. - uses: actions/download-artifact@v1
  601. with:
  602. name: win${{env.ARCH}}Binaries
  603. - name: Install Neko from S3
  604. shell: pwsh
  605. run: |
  606. Invoke-WebRequest https://build.haxe.org/builds/neko/$env:PLATFORM/neko_latest.zip -OutFile $env:RUNNER_TEMP/neko_latest.zip
  607. Expand-Archive $env:RUNNER_TEMP/neko_latest.zip -DestinationPath $env:RUNNER_TEMP
  608. $NEKOPATH = Get-ChildItem $env:RUNNER_TEMP/neko-*-*
  609. echo "$NEKOPATH" >> $env:GITHUB_PATH
  610. echo "NEKOPATH=$NEKOPATH" >> $env:GITHUB_ENV
  611. - name: Print Neko version
  612. run: neko -version 2>&1
  613. # - name: Quick test
  614. # shell: pwsh
  615. # run: |
  616. # $DOWNLOADDIR="./win$($env:ARCH)Binaries"
  617. # new-item -Name $DOWNLOADDIR -ItemType directory
  618. # Invoke-WebRequest https://build.haxe.org/builds/haxe/$env:PLATFORM/haxe_latest.zip -OutFile $DOWNLOADDIR/haxe_bin.zip
  619. - name: Setup Haxe
  620. shell: pwsh
  621. run: |
  622. $DOWNLOADDIR="./win$($env:ARCH)Binaries"
  623. Expand-Archive $DOWNLOADDIR/*_bin.zip -DestinationPath $DOWNLOADDIR
  624. Set-PSDebug -Trace 1
  625. $HAXEPATH = Get-ChildItem $DOWNLOADDIR/haxe_*_* -Directory
  626. Write-Host "::add-path::$HAXEPATH"
  627. Write-Host "::set-env name=HAXELIB_ROOT::$HAXEPATH\lib"
  628. - name: Print Haxe version
  629. shell: pwsh
  630. run: haxe -version
  631. - name: "Make Python 3 be available as python3 in the cmdline"
  632. shell: pwsh
  633. run: |
  634. Set-PSDebug -Trace 1
  635. $pypath = python -c "import sys; print(sys.executable)"
  636. $py3path = $pypath.replace("python.exe","python3.exe")
  637. cmd /c mklink $py3path $pypath
  638. python3 -V
  639. - name: Install hererocks
  640. if: matrix.target == 'lua'
  641. shell: cmd
  642. run: |
  643. pip install hererocks
  644. hererocks lua53 -l5.3 -rlatest
  645. call lua53/bin/activate
  646. - name: Install wget
  647. if: matrix.target == 'flash'
  648. shell: cmd
  649. run: |
  650. choco install wget
  651. wget --version
  652. - name: Setup haxelib
  653. shell: pwsh
  654. run: |
  655. mkdir "$env:HAXELIB_ROOT"
  656. haxelib setup "$env:HAXELIB_ROOT"
  657. - name: Test
  658. shell: pwsh
  659. run: haxe RunCi.hxml
  660. working-directory: ${{github.workspace}}/tests
  661. windows-test:
  662. needs: windows-build
  663. runs-on: windows-latest
  664. env:
  665. ACTIONS_ALLOW_UNSECURE_COMMANDS: true
  666. PLATFORM: windows
  667. TEST: ${{matrix.target}}
  668. HXCPP_COMPILE_CACHE: ~/hxcache
  669. ARCH: 32
  670. strategy:
  671. fail-fast: false
  672. matrix:
  673. # TODO jvm: https://github.com/HaxeFoundation/haxe/issues/8601
  674. # TODO enable lua after https://github.com/HaxeFoundation/haxe/issues/10919
  675. target: [macro, js, hl, cpp, java, cs, php, python, flash, neko]
  676. steps:
  677. - uses: actions/checkout@main
  678. with:
  679. submodules: recursive
  680. - uses: actions/download-artifact@v1
  681. with:
  682. name: win${{env.ARCH}}Binaries
  683. - name: Install Neko from S3
  684. shell: pwsh
  685. run: |
  686. Invoke-WebRequest https://build.haxe.org/builds/neko/$env:PLATFORM/neko_latest.zip -OutFile $env:RUNNER_TEMP/neko_latest.zip
  687. Expand-Archive $env:RUNNER_TEMP/neko_latest.zip -DestinationPath $env:RUNNER_TEMP
  688. $NEKOPATH = Get-ChildItem $env:RUNNER_TEMP/neko-*-*
  689. echo "$NEKOPATH" >> $env:GITHUB_PATH
  690. echo "NEKOPATH=$NEKOPATH" >> $env:GITHUB_ENV
  691. - name: Print Neko version
  692. run: neko -version 2>&1
  693. # - name: Quick test
  694. # shell: pwsh
  695. # run: |
  696. # $DOWNLOADDIR="./win$($env:ARCH)Binaries"
  697. # new-item -Name $DOWNLOADDIR -ItemType directory
  698. # Invoke-WebRequest https://build.haxe.org/builds/haxe/$env:PLATFORM/haxe_latest.zip -OutFile $DOWNLOADDIR/haxe_bin.zip
  699. - name: Setup Haxe
  700. shell: pwsh
  701. run: |
  702. $DOWNLOADDIR="./win$($env:ARCH)Binaries"
  703. Expand-Archive $DOWNLOADDIR/*_bin.zip -DestinationPath $DOWNLOADDIR
  704. Set-PSDebug -Trace 1
  705. $HAXEPATH = Get-ChildItem $DOWNLOADDIR/haxe_*_* -Directory
  706. Write-Host "::add-path::$HAXEPATH"
  707. Write-Host "::set-env name=HAXELIB_ROOT::$HAXEPATH\lib"
  708. - name: Print Haxe version
  709. shell: pwsh
  710. run: haxe -version
  711. - name: "Make Python 3 be available as python3 in the cmdline"
  712. shell: pwsh
  713. run: |
  714. Set-PSDebug -Trace 1
  715. $pypath = python -c "import sys; print(sys.executable)"
  716. $py3path = $pypath.replace("python.exe","python3.exe")
  717. cmd /c mklink $py3path $pypath
  718. python3 -V
  719. - name: Install hererocks
  720. if: matrix.target == 'lua'
  721. shell: cmd
  722. run: |
  723. pip install hererocks
  724. hererocks lua53 -l5.3 -rlatest
  725. call lua53/bin/activate
  726. - name: Install wget
  727. if: matrix.target == 'flash'
  728. shell: cmd
  729. run: |
  730. choco install wget
  731. wget --version
  732. - name: Setup haxelib
  733. shell: pwsh
  734. run: |
  735. mkdir "$env:HAXELIB_ROOT"
  736. haxelib setup "$env:HAXELIB_ROOT"
  737. - name: Test
  738. shell: pwsh
  739. run: haxe RunCi.hxml
  740. working-directory: ${{github.workspace}}/tests
  741. mac-test:
  742. needs: mac-build
  743. runs-on: macos-latest
  744. env:
  745. PLATFORM: mac
  746. TEST: ${{matrix.target}}
  747. HXCPP_COMPILE_CACHE: ~/hxcache
  748. HAXE_STD_PATH: /usr/local/share/haxe/std
  749. strategy:
  750. fail-fast: false
  751. matrix:
  752. target: [macro, js, hl, cpp, 'java,jvm', cs, php, python, flash, neko]
  753. include:
  754. - target: hl
  755. BREW_PACKAGES: ninja
  756. steps:
  757. - uses: actions/checkout@main
  758. with:
  759. submodules: recursive
  760. - uses: actions/download-artifact@v1
  761. with:
  762. name: macBinaries
  763. - name: Install Neko from S3
  764. run: |
  765. set -ex
  766. curl -sSL https://build.haxe.org/builds/neko/$PLATFORM/neko_latest.tar.gz -o $RUNNER_TEMP/neko_latest.tar.gz
  767. tar -xf $RUNNER_TEMP/neko_latest.tar.gz -C $RUNNER_TEMP
  768. NEKOPATH=`echo $RUNNER_TEMP/neko-*-*`
  769. sudo mkdir -p /usr/local/bin
  770. sudo mkdir -p /usr/local/lib/neko
  771. sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/
  772. sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/
  773. sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/
  774. echo "NEKOPATH=$NEKOPATH" >> $GITHUB_ENV
  775. - name: Print Neko version
  776. run: neko -version 2>&1
  777. - name: Setup Haxe
  778. run: |
  779. # mkdir ./macBinaries
  780. # curl -sSL https://build.haxe.org/builds/haxe/mac/haxe_latest.tar.gz -o ./macBinaries/haxe_bin.tar.gz
  781. set -ex
  782. tar -xf macBinaries/*_bin.tar.gz -C macBinaries --strip-components=1
  783. sudo mkdir -p /usr/local/bin/
  784. sudo mkdir -p /usr/local/share/haxe/
  785. sudo ln -s `pwd`/macBinaries/haxe /usr/local/bin/haxe
  786. sudo ln -s `pwd`/macBinaries/haxelib /usr/local/bin/haxelib
  787. sudo ln -s `pwd`/macBinaries/std /usr/local/share/haxe/std
  788. - name: Print Haxe version
  789. run: haxe -version
  790. - name: Setup haxelib
  791. run: |
  792. set -ex
  793. mkdir ~/haxelib
  794. haxelib setup ~/haxelib
  795. - name: Install homebrew packages
  796. if: matrix.BREW_PACKAGES
  797. run: brew install ${{matrix.BREW_PACKAGES}}
  798. - name: Test
  799. run: |
  800. # disable invalid Unicode filenames on APFS
  801. echo "" > sys/compile-fs.hxml
  802. haxe RunCi.hxml
  803. working-directory: ${{github.workspace}}/tests
  804. deploy:
  805. if: success() && github.repository_owner == 'HaxeFoundation' && github.event_name != 'pull_request'
  806. needs: [linux-test, linux-arm64, mac-test, windows-test, windows64-test]
  807. runs-on: ubuntu-20.04
  808. steps:
  809. # this is only needed for to get `COMMIT_DATE`...
  810. # maybe https://github.community/t/expose-commit-timestamp-in-the-github-context-data/16460/3
  811. # would be faster
  812. - name: Checkout the repository
  813. uses: actions/checkout@main
  814. - name: Download build artifacts
  815. uses: actions/download-artifact@v2
  816. - name: Install awscli
  817. run: |
  818. set -ex
  819. sudo apt-get update -qqy
  820. sudo apt-get install -qqy awscli
  821. # https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
  822. - name: Extract branch name
  823. id: extract_branch
  824. shell: bash
  825. run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
  826. - name: Upload binaries
  827. shell: bash
  828. env:
  829. AWS_ACCESS_KEY_ID: ${{ secrets.HXBUILDS_AWS_ACCESS_KEY_ID }}
  830. AWS_SECRET_ACCESS_KEY: ${{ secrets.HXBUILDS_AWS_SECRET_ACCESS_KEY }}
  831. HXBUILDS_S3ADDR: ${{ secrets.HXBUILDS_S3ADDR }}
  832. AWS_EC2_METADATA_DISABLED: true
  833. run: |
  834. set -ex
  835. COMMIT_HASH_SHORT=${GITHUB_SHA:0:7}
  836. COMMIT_DATE=`TZ=UTC git show --quiet --date='format-local:%Y-%m-%d' --format="%cd"`
  837. FILE_NAME=haxe_${COMMIT_DATE}_${{ steps.extract_branch.outputs.branch }}_${COMMIT_HASH_SHORT}
  838. aws s3 cp linuxBinaries/*_bin.tar.gz ${HXBUILDS_S3ADDR}/haxe/linux64/${FILE_NAME}.tar.gz
  839. aws s3 cp linuxArm64Binaries/*_bin.tar.gz ${HXBUILDS_S3ADDR}/haxe/linux-arm64/${FILE_NAME}.tar.gz
  840. aws s3 cp macBinaries/*_bin.tar.gz ${HXBUILDS_S3ADDR}/haxe/mac/${FILE_NAME}.tar.gz
  841. aws s3 cp macBinaries/*_installer.tar.gz ${HXBUILDS_S3ADDR}/haxe/mac-installer/${FILE_NAME}.tar.gz
  842. aws s3 cp win64Binaries/*_bin.zip ${HXBUILDS_S3ADDR}/haxe/windows64/${FILE_NAME}.zip
  843. aws s3 cp win64Binaries/*_installer.zip ${HXBUILDS_S3ADDR}/haxe/windows64-installer/${FILE_NAME}.zip
  844. aws s3 cp win64Binaries/*.nupkg ${HXBUILDS_S3ADDR}/haxe/windows64-choco/
  845. aws s3 cp win32Binaries/*_bin.zip ${HXBUILDS_S3ADDR}/haxe/windows/${FILE_NAME}.zip
  846. aws s3 cp win32Binaries/*_installer.zip ${HXBUILDS_S3ADDR}/haxe/windows-installer/${FILE_NAME}.zip
  847. aws s3 cp win32Binaries/*.nupkg ${HXBUILDS_S3ADDR}/haxe/windows-choco/
  848. - name: Update "latest"
  849. if: github.ref == 'refs/heads/development'
  850. shell: bash
  851. env:
  852. AWS_ACCESS_KEY_ID: ${{ secrets.HXBUILDS_AWS_ACCESS_KEY_ID }}
  853. AWS_SECRET_ACCESS_KEY: ${{ secrets.HXBUILDS_AWS_SECRET_ACCESS_KEY }}
  854. HXBUILDS_S3ADDR: ${{ secrets.HXBUILDS_S3ADDR }}
  855. AWS_EC2_METADATA_DISABLED: true
  856. run: |
  857. set -ex
  858. aws s3 cp linuxBinaries/*_bin.tar.gz ${HXBUILDS_S3ADDR}/haxe/linux64/haxe_latest.tar.gz
  859. aws s3 cp linuxArm64Binaries/*_bin.tar.gz ${HXBUILDS_S3ADDR}/haxe/linux-arm64/haxe_latest.tar.gz
  860. aws s3 cp macBinaries/*_bin.tar.gz ${HXBUILDS_S3ADDR}/haxe/mac/haxe_latest.tar.gz
  861. aws s3 cp macBinaries/*_installer.tar.gz ${HXBUILDS_S3ADDR}/haxe/mac-installer/haxe_latest.tar.gz
  862. aws s3 cp win64Binaries/*_bin.zip ${HXBUILDS_S3ADDR}/haxe/windows64/haxe_latest.zip
  863. aws s3 cp win64Binaries/*_installer.zip ${HXBUILDS_S3ADDR}/haxe/windows64-installer/haxe_latest.zip
  864. aws s3 cp win32Binaries/*_bin.zip ${HXBUILDS_S3ADDR}/haxe/windows/haxe_latest.zip
  865. aws s3 cp win32Binaries/*_installer.zip ${HXBUILDS_S3ADDR}/haxe/windows-installer/haxe_latest.zip
  866. # Chocolatey packages have to be named with version number,
  867. # so let's use web redirection to keep the original file name.
  868. [[ "$HXBUILDS_S3ADDR" =~ s3://([^/]+)(.*) ]] && HXBUILDS_S3BUCKET="${BASH_REMATCH[1]}" && HXBUILDS_S3PATH="${BASH_REMATCH[2]}"
  869. [[ `echo win64Binaries/*.nupkg` =~ win64Binaries/(.+) ]] && FILE_NAME="${BASH_REMATCH[1]}"
  870. aws s3 cp ${HXBUILDS_S3ADDR}/haxe/windows64-choco/${FILE_NAME} ${HXBUILDS_S3ADDR}/haxe/windows64-choco/haxe_latest.nupkg --acl public-read --website-redirect "${HXBUILDS_S3PATH}/haxe/windows64-choco/${FILE_NAME}"
  871. [[ `echo win32Binaries/*.nupkg` =~ win32Binaries/(.+) ]] && FILE_NAME="${BASH_REMATCH[1]}"
  872. aws s3 cp ${HXBUILDS_S3ADDR}/haxe/windows-choco/${FILE_NAME} ${HXBUILDS_S3ADDR}/haxe/windows-choco/haxe_latest.nupkg --acl public-read --website-redirect "${HXBUILDS_S3PATH}/haxe/windows-choco/${FILE_NAME}"
  873. deploy_apidoc:
  874. if: success() && github.repository_owner == 'HaxeFoundation' && github.event_name != 'pull_request'
  875. needs: [linux-test, linux-arm64, mac-test, windows-test, windows64-test]
  876. runs-on: ubuntu-20.04
  877. steps:
  878. - name: Install dependencies
  879. run: |
  880. set -ex
  881. sudo apt-get install -qqy libc6
  882. - name: Download Haxe
  883. uses: actions/download-artifact@v2
  884. with:
  885. name: linuxBinaries
  886. path: linuxBinaries
  887. - name: Setup Haxe
  888. run: |
  889. set -ex
  890. tar -xf linuxBinaries/*_bin.tar.gz -C linuxBinaries --strip-components=1
  891. sudo mkdir -p /usr/local/bin/
  892. sudo mkdir -p /usr/local/share/haxe/
  893. sudo ln -s `pwd`/linuxBinaries/haxe /usr/local/bin/haxe
  894. sudo ln -s `pwd`/linuxBinaries/haxelib /usr/local/bin/haxelib
  895. sudo ln -s `pwd`/linuxBinaries/std /usr/local/share/haxe/std
  896. - name: Download xmldoc artifact
  897. uses: actions/download-artifact@v2
  898. with:
  899. name: xmldoc
  900. path: xmldoc
  901. - name: Deploy to api.haxe.org
  902. env:
  903. GHP_EMAIL: [email protected]
  904. GHP_USERNAME: Haxe CI Bot
  905. GHP_REMOTE: ${{ secrets.GHP_REMOTE }}
  906. run: |
  907. set -ex
  908. LOCAL="`pwd`/extra/api.haxe.org"
  909. git clone "${GHP_REMOTE}" "${LOCAL}"
  910. haxe --cwd "${LOCAL}" --run ImportXml "`pwd`/xmldoc"