name: build:lib on: push jobs: files-changed: name: Detect File Changes - build -lib runs-on: ubuntu-latest outputs: build: ${{ steps.filter.outputs.build }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7 - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 id: filter with: filters: | build: - '.github/workflows/**/*' - 'lib/**/*' build: if: needs.files-changed.outputs.build == 'true' name: Build needs: files-changed runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3 with: node-version-file: '.tool-versions' - name: Install Dependencies & Build Library run: | npm install npm run build working-directory: lib/ build-examples: if: needs.files-changed.outputs.build == 'true' name: Test Example Apps needs: [files-changed, build] runs-on: ubuntu-latest strategy: matrix: app: [examples/1-basic-map, examples/2-static-layers, examples/3-tags ] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3 with: node-version-file: '.tool-versions' - name: Link Utopia-UI in Example App run: | npm install npm run build cd ${{ matrix.app }} npm install npm run build working-directory: lib/ results: if: ${{ always() }} runs-on: ubuntu-latest name: Test Example Apps - results needs: [build-examples] steps: - run: | result="${{ needs.build-examples.result }}" if [[ $result == "success" || $result == "skipped" ]]; then exit 0 else exit 1 fi