mirror of
https://github.com/lighttransport/tinyusdz.git
synced 2026-01-18 01:11:17 +01:00
100 lines
2.9 KiB
YAML
100 lines
2.9 KiB
YAML
# Simple workflow that builds wasm and publish to npm registry
|
|
name: Build and publish wasm
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
release_version:
|
|
description: 'NPM Release Version'
|
|
required: true
|
|
type: string
|
|
default: 1.0.0
|
|
NPM_tag:
|
|
description: 'NPM Tag'
|
|
required: true
|
|
type: string
|
|
default: preview
|
|
NPM_publish_arg:
|
|
description: 'NPM Publish arg'
|
|
required: false
|
|
type: string
|
|
|
|
jobs:
|
|
tinyusdz-wasm:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: latest
|
|
- name: Instsall tools
|
|
run: |
|
|
sudo apt install zstd
|
|
- name: Setup Emscripten SDK
|
|
run: |
|
|
git clone https://github.com/emscripten-core/emsdk.git
|
|
cd emsdk
|
|
|
|
./emsdk install 4.0.9
|
|
./emsdk activate 4.0.9
|
|
|
|
# Revert to 3.1.51 if there is a problem.
|
|
## from https://github.com/Twinklebear/webgpu-cpp-usdz/blob/main/.github/workflows/deploy-page.yml
|
|
## TODO: 3.1.52 has a change to WebGPU API that is incompatible
|
|
## with the C++ bindings I have in the repo?
|
|
#./emsdk install 3.1.51
|
|
#./emsdk activate 3.1.51
|
|
- name: Configure
|
|
run: |
|
|
source ./emsdk/emsdk_env.sh
|
|
cd web
|
|
mkdir cmake-build
|
|
cd cmake-build
|
|
emcmake cmake .. -DCMAKE_BUILD_TYPE=MinSizeRel
|
|
|
|
- name: Build WASM
|
|
working-directory: ${{ github.workspace }}/web/cmake-build
|
|
run: |
|
|
source ../../emsdk/emsdk_env.sh
|
|
make
|
|
|
|
- name: Configure64
|
|
run: |
|
|
source ./emsdk/emsdk_env.sh
|
|
cd web
|
|
mkdir cmake-build64
|
|
cd cmake-build64
|
|
emcmake cmake .. -DCMAKE_BUILD_TYPE=MinSizeRel -DTINYUSDZ_WASM64=1
|
|
|
|
- name: Build WASM64
|
|
working-directory: ${{ github.workspace }}/web/cmake-build64
|
|
run: |
|
|
source ../../emsdk/emsdk_env.sh
|
|
make
|
|
|
|
- name: Prepare npm
|
|
working-directory: ${{ github.workspace }}/web/npm
|
|
run: |
|
|
npm install
|
|
npm run build
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: 'tinyusdz'
|
|
path: ${{ github.workspace }}/web/npm/dist
|
|
|
|
- name: Version & Publish Package
|
|
# Setup .npmrc file to publish to npm
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20.x'
|
|
registry-url: 'https://registry.npmjs.org'
|
|
- run: |
|
|
npm version --no-git-tag-version ${{ github.event.inputs.release_version }} --allow-same-version
|
|
npm publish --access public --tag ${{ github.event.inputs.NPM_tag }} ${{ github.event.inputs.NPM_publish_arg }}
|
|
working-directory: ${{ github.workspace }}/web/npm/dist
|
|
env:
|
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|