feat: add data binding system with expression compiler and editor UI #253
This file contains hidden or 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 ] | |
| pull_request: | |
| branches: [ master ] | |
| jobs: | |
| build-linux: | |
| name: Linux (Ubuntu GCC) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| cmake \ | |
| ninja-build \ | |
| libglfw3-dev \ | |
| libgl1-mesa-dev \ | |
| xorg-dev \ | |
| libxkbcommon-dev \ | |
| ccache | |
| - name: Setup ccache | |
| uses: hendrikmuhs/ccache-action@v1.2.20 | |
| with: | |
| key: ${{ runner.os }}-build-linux | |
| max-size: 500M | |
| - name: Configure CMake | |
| run: cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug -DES_ENABLE_CCACHE=ON | |
| - name: Build | |
| run: cmake --build build | |
| - name: Test | |
| working-directory: build | |
| run: ctest --output-on-failure | |
| build-emscripten: | |
| name: Web (Emscripten) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24' | |
| cache: 'pnpm' | |
| - name: Setup Emscripten | |
| uses: mymindstorm/setup-emsdk@v14 | |
| with: | |
| version: 5.0.0 | |
| - name: Setup ccache | |
| uses: hendrikmuhs/ccache-action@v1.2.20 | |
| with: | |
| key: ${{ runner.os }}-emscripten | |
| max-size: 500M | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Build all targets | |
| run: node build-tools/cli.js build -t all --no-sync | |
| test: | |
| name: Tests (SDK + Editor) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24' | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Type-check SDK | |
| run: pnpm exec tsc --noEmit -p sdk/tsconfig.json | |
| - name: Build SDK | |
| run: pnpm --filter ./sdk build | |
| - name: Type-check Editor | |
| run: pnpm exec tsc --noEmit -p editor/tsconfig.json | |
| - name: Run SDK tests | |
| run: pnpm --filter ./sdk exec vitest run | |
| - name: Run Editor tests | |
| run: pnpm --filter ./editor exec vitest run |