Support emscipten target -> wasm better #97
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push] | |
jobs: | |
build_matrix: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-13] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- uses: krdlab/[email protected] | |
with: | |
haxe-version: 4.3.4 | |
- name: Install haxelibs | |
run: | | |
haxe -version | |
haxelib install gm2d | |
haxelib install format | |
haxelib install nme-toolkit | |
haxelib install hxcpp | |
haxelib dev nme . | |
- name: Set Version | |
run: haxe -cp tools/version --run Write ${{github.run_number}} ${{github.sha}} > version.env | |
- name: Build Tool | |
run: | | |
cd tools/nme | |
haxe compile.hxml | |
- name: Check XCode | |
if: startsWith(matrix.os,'macos') | |
run: xcode-select -p | |
- name: APT Install SDL libraries | |
if: startsWith(matrix.os,'ubuntu') | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install libasound2-dev libpulse-dev libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libwayland-dev libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev | |
- name: Build Project | |
run: | | |
cd project | |
haxelib run hxcpp ToolkitBuild.xml -DHXCPP_M64 | |
- name: Prep Acadnme | |
run: | | |
cd acadnme | |
haxelib run nme cpp nocompile | |
- name: Boot Acadnme | |
run: | | |
cd samples/AcadnmeBoot | |
haxelib run nme cppia installer | |
- name: Build Acadnme | |
run: | | |
cd acadnme | |
haxelib run nme cpp build -DHXCPP_M64 | |
- name: Setup Emscripten | |
if: startsWith(matrix.os,'ubuntu') | |
uses: mymindstorm/setup-emsdk@v11 | |
- name: Build JSPRIME | |
if: startsWith(matrix.os,'ubuntu') | |
run: | | |
cd project | |
neko build.n jsprime | |
- name: Clean Project | |
if: startsWith(matrix.os,'ubuntu') | |
run: | | |
rm -rf project/obj | |
rm -rf acadnme/bin | |
- name: Archive Linux Results | |
if: startsWith(matrix.os,'ubuntu') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-64 | |
path: | | |
ndll/Linux64/nme.ndll | |
bin/Linux/Acadnme | |
ndll/Emscripten/nme.wasm | |
ndll/Emscripten/nme.js | |
ndll/Emscripten/nme.js.mem | |
ndll/Emscripten/NmeClasses.js | |
ndll/Emscripten/preloader.js | |
ndll/Emscripten/parsenme.js | |
ndll/Emscripten/export_classes.info | |
src/cppia/export_classes.info | |
version.env | |
tools | |
haxelib.json | |
project | |
README.md | |
samples | |
nme.n | |
tests | |
templates | |
src | |
run.n | |
include | |
include.nmml | |
lib | |
acadnme | |
assets | |
Changes.md | |
LICENSE | |
- name: Archive Windows Results | |
if: startsWith(matrix.os,'windows') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows-64 | |
path: | | |
ndll/Windows64/nme.ndll | |
bin/Windows/Acadnme/Acadnme.exe | |
- name: Archive Mac Results | |
if: startsWith(matrix.os,'macos') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: mac-64 | |
path: | | |
ndll/Mac64/nme.ndll | |
bin/Mac/Acadnme.app | |
release: | |
name: Release | |
needs: build_matrix | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download Linux | |
uses: actions/download-artifact@v3 | |
with: | |
name: linux-64 | |
path: nme | |
- name: Download Mac | |
uses: actions/download-artifact@v3 | |
with: | |
name: mac-64 | |
path: nme | |
- name: Download Windows | |
uses: actions/download-artifact@v3 | |
with: | |
name: windows-64 | |
path: nme | |
- name: List Files | |
run: ls -R | |
- name: Get Version | |
run: | | |
cat nme/version.env | |
cat nme/version.env >> $GITHUB_ENV | |
rm nme/version.env | |
- name: Zip release | |
run: | | |
mv nme nme-${{ env.nme_release }} | |
zip -r nme-${{ env.nme_release }}.zip nme-${{ env.nme_release }} | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: v${{ env.nme_release }} | |
release_name: Release ${{ env.nme_release }} | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps | |
asset_path: ./nme-${{ env.nme_release }}.zip | |
asset_name: nme-${{ env.nme_release }}.zip | |
asset_content_type: application/zip | |