From f80e20c4aa83797ceec103e1d4ba08351b4e035e Mon Sep 17 00:00:00 2001 From: ArthurSonzogni Date: Sat, 9 Jul 2022 18:39:01 +0200 Subject: [PATCH] Build documents and examples on master. --- .github/workflows/build.yaml | 21 +++++++++++++++++---- examples/CMakeLists.txt | 1 + examples/index.html | 12 ++++++++++++ examples/sw.js | 23 +++++++++++++++++++++++ 4 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 examples/sw.js diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 342aec6..b653ea2 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 74f295d..7b02d17 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 717a5fe..c714d54 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 0000000..3e3877a --- /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; + })()); +});