Add coverage build for gltfpack #1332
Workflow file for this run
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: build | |
on: | |
push: | |
branches: | |
- 'master' | |
paths-ignore: | |
- '*.md' | |
pull_request: | |
paths-ignore: | |
- '*.md' | |
jobs: | |
unix: | |
strategy: | |
matrix: | |
os: [ubuntu, macos] | |
name: ${{matrix.os}} | |
runs-on: ${{matrix.os}}-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: make test | |
run: | | |
make -j2 config=sanitize test | |
make -j2 config=debug test | |
make -j2 config=release test | |
make -j2 config=coverage test | |
- name: make gltfpack | |
run: make -j2 config=release gltfpack | |
- name: upload coverage | |
run: | | |
find . -type f -name '*.gcno' -exec gcov -p {} + | |
sed -i -e "s/#####\(.*\)\(\/\/ unreachable.*\)/ -\1\2/" *.gcov | |
bash <(curl -s https://codecov.io/bash) -f './src*.gcov' -X search -t ${{secrets.CODECOV_TOKEN}} -B ${{github.ref}} | |
windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
arch: [Win32, x64] | |
steps: | |
- uses: actions/checkout@v1 | |
- name: cmake configure | |
run: cmake . -DMESHOPT_BUILD_DEMO=ON -DMESHOPT_BUILD_GLTFPACK=ON -DMESHOPT_WERROR=ON -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$<CONFIG:Debug>:Debug>" -A ${{matrix.arch}} | |
- name: cmake test | |
shell: bash # necessary for fail-fast | |
run: | | |
cmake --build . -- -property:Configuration=Debug -verbosity:minimal | |
Debug/demo.exe demo/pirate.obj | |
cmake --build . -- -property:Configuration=Release -verbosity:minimal | |
Release/demo.exe demo/pirate.obj | |
nodejs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
- name: test decoder | |
run: node js/meshopt_decoder.test.js | |
- name: test simd decoder | |
run: node --experimental-wasm-simd js/meshopt_decoder.test.js | |
- name: test encoder | |
run: node js/meshopt_encoder.test.js | |
- name: test simplifier | |
run: node js/meshopt_simplifier.test.js | |
gltfpack: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions/checkout@v3 | |
with: | |
repository: KhronosGroup/glTF-Sample-Assets | |
path: glTF-Sample-Assets | |
- name: make | |
run: make -j2 config=sanitize gltfpack | |
- name: test | |
run: find glTF-Sample-Assets -name *.gltf -or -name *.glb | xargs -d '\n' ./gltfpack -cc -test | |
- name: pack | |
run: find glTF-Sample-Assets -name *.gltf | grep -v 'glTF-Draco\|glTF-KTX\|glTF-Meshopt' | xargs -d '\n' -I '{}' ./gltfpack -i '{}' -o '{}pack.gltf' | |
- name: validate | |
run: | | |
curl -sL $VALIDATOR | tar xJ | |
find glTF-Sample-Assets -name *.gltfpack.gltf | xargs -d '\n' -L 1 ./gltf_validator -r -a | |
env: | |
VALIDATOR: https://github.com/KhronosGroup/glTF-Validator/releases/download/2.0.0-dev.3.8/gltf_validator-2.0.0-dev.3.8-linux64.tar.xz | |
gltfpack-js: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '14.x' | |
- name: install wasi | |
run: | | |
curl -sL https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$VERSION/wasi-sdk-$VERSION.0-linux.tar.gz | tar xz | |
curl -sL https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$VERSION/libclang_rt.builtins-wasm32-wasi-$VERSION.0.tar.gz | tar xz -C wasi-sdk-$VERSION.0 | |
curl -sL https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$VERSION/wasi-sysroot-$VERSION.0.tar.gz | tar xz -C wasi-sdk-$VERSION.0/share | |
mv wasi-sdk-$VERSION.0 wasi-sdk | |
env: | |
VERSION: 17 | |
- name: build | |
run: | | |
make -j2 -B WASI_SDK=wasi-sdk gltf/library.wasm js | |
git status | |
- name: test | |
run: | | |
node gltf/cli.js -i demo/pirate.obj -o pirate.glb -v | |
node gltf/cli.js -i `pwd`/pirate.glb -o pirate-repack.glb -cc -v | |
wc -c pirate.glb pirate-repack.glb | |
node js/meshopt_decoder.test.js | |
node js/meshopt_encoder.test.js | |
node js/meshopt_simplifier.test.js | |
gltfpack-basis: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions/checkout@v3 | |
with: | |
repository: zeux/basis_universal | |
ref: gltfpack | |
path: basis_universal | |
- name: make gltfpack | |
run: make -j2 BASISU=basis_universal gltfpack | |
gltfpack-coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions/checkout@v3 | |
with: | |
repository: KhronosGroup/glTF-Sample-Assets | |
path: glTF-Sample-Assets | |
- name: make | |
run: make -j2 config=coverage gltfpack | |
- name: test | |
run: | | |
./gltfpack || true | |
./gltfpack -h || true | |
./gltfpack -i demo/pirate.obj -o pirate.glb -vv -r /dev/tty | |
find glTF-Sample-Assets -name *.gltf -or -name *.glb | xargs -d '\n' ./gltfpack -cc -test | |
./gltfpack -i glTF-Sample-Assets/Models/ABeautifulGame/glTF/ABeautifulGame.gltf -o game.glb -mi -c | |
- name: upload coverage | |
run: | | |
find . -type f -name '*.gcno' -exec gcov -p {} + | |
sed -i -e "s/#####\(.*\)\(\/\/ unreachable.*\)/ -\1\2/" *.gcov | |
bash <(curl -s https://codecov.io/bash) -f './gltf*.gcov' -X search -t ${{secrets.CODECOV_TOKEN}} -B ${{github.ref}} | |
arm64: | |
runs-on: ubuntu-latest | |
steps: | |
- run: docker run --rm --privileged multiarch/qemu-user-static:register --reset | |
- uses: docker://multiarch/ubuntu-core:arm64-focal | |
with: | |
args: 'uname -a' | |
- uses: actions/checkout@v1 | |
- name: make test | |
uses: docker://multiarch/ubuntu-core:arm64-focal | |
with: | |
args: 'bash -c "apt-get update && apt-get install -y build-essential && make -j2 config=coverage test"' | |
- name: upload coverage | |
run: | | |
find . -type f -name '*.gcno' -exec gcov -p {} + | |
sed -i -e "s/#####\(.*\)\(\/\/ unreachable.*\)/ -\1\2/" *.gcov | |
bash <(curl -s https://codecov.io/bash) -f './src*.gcov' -X search -t ${{secrets.CODECOV_TOKEN}} -B ${{github.ref}} | |
iphone: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: make | |
run: make -j2 config=iphone |