Skip to content

Support emscipten target -> wasm better #97

Support emscipten target -> wasm better

Support emscipten target -> wasm better #97

Workflow file for this run

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