name: Build for the web on: push: branches: - 'master' - 'releases/**' pull_request: workflow_dispatch: env: BUILD_TYPE: Release permissions: pages: write id-token: write actions: write jobs: build: runs-on: ubuntu-22.04 name: 🌍 WebAssembly steps: - name: 🧰 Checkout uses: actions/checkout@v4 with: submodules: recursive - name: 📁 Restore docker /cache uses: actions/cache@v4 with: path: cache key: web-cmakecache-${{ hashFiles('**/CMakeLists.txt') }} - name: 🐳 Inject /cache into docker uses: reproducible-containers/buildkit-cache-dance@v2 with: cache-source: cache cache-target: /cache - name: 🛠️ Build using docker run: | docker buildx build . -f dist/web/Dockerfile --progress=plain --build-arg 'JOBS=4' --output out --target raw - name: 🔨 Fix permissions run: | chmod -c -R +rX "out/" - name: ⬆️ Upload artifacts uses: actions/upload-pages-artifact@v2 with: path: out/ # See https://github.com/actions/cache/issues/342#issuecomment-1711054115 - name: 🗑️ Delete old cache continue-on-error: true env: GH_TOKEN: ${{ github.token }} run: | gh extension install actions/gh-actions-cache gh actions-cache delete "build-web-cache" --confirm deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} name: 📃 Deploy to GitHub Pages runs-on: ubuntu-latest if: ${{ github.ref == 'refs/heads/master' && github.event.repository.fork == false }} needs: build steps: - name: 🌍 Deploy id: deployment uses: actions/deploy-pages@v2