diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 342aec63..b653ea26 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -169,7 +169,7 @@ jobs: overwrite: true documentation: - needs: package + if: github.ref == 'refs/heads/master' runs-on: ubuntu-latest steps: - name: "Checkout repository" @@ -190,9 +190,22 @@ jobs: run: > mkdir build; cd build; - emcmake cmake ..; - cmake --build . --target doc; - rsync -amv --include='*/' --include='*.html' --include='*.js' --include='*.wasm' --exclude='*' examples doc/doxygen/html; + emcmake cmake .. + -DCMAKE_BUILD_TYPE=Release + -DFTXUI_BUILD_DOCS=ON + -DFTXUI_BUILD_EXAMPLES=ON + -DFTXUI_BUILD_TESTS=OFF + -DFTXUI_BUILD_TESTS_FUZZER=OFF + -DFTXUI_ENABLE_INSTALL=OFF; + cmake --build .; + rsync -amv + --include='*/' + --include='*.html' + --include='*.js' + --include='*.wasm' + --exclude='*' + examples + doc/doxygen/html; - name: "Deploy" uses: peaceiris/actions-gh-pages@v3 diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 74f295d7..7b02d17e 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -19,6 +19,7 @@ if (EMSCRIPTEN) get_property(EXAMPLES GLOBAL PROPERTY FTXUI::EXAMPLES) foreach(file "index.html" + "sw.js" "run_webassembly.py") configure_file(${file} ${file}) endforeach(file) diff --git a/examples/index.html b/examples/index.html index 717a5fe3..c714d54c 100644 --- a/examples/index.html +++ b/examples/index.html @@ -5,6 +5,18 @@ + + diff --git a/examples/sw.js b/examples/sw.js new file mode 100644 index 00000000..3e3877a0 --- /dev/null +++ b/examples/sw.js @@ -0,0 +1,23 @@ +// sw.js +self.addEventListener("install", () => self.skipWaiting()); +self.addEventListener("activate", e => e.waitUntil(self.clients.claim())); +self.addEventListener("fetch", e => { + if (e.request.mode != 'navigate') + return; + + e.respondWith((async () => { + const response = await fetch(e.request); + + const newHeaders = new Headers(response.headers); + newHeaders.set("Cross-Origin-Embedder-Policy", "require-corp"); + newHeaders.set("Cross-Origin-Opener-Policy", "same-origin"); + + const moddedResponse = new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: newHeaders, + }); + + return moddedResponse; + })()); +});