From 98d98292799c5fba84c073a5c9f5addd535a7845 Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Thu, 2 Feb 2023 23:35:58 +0900 Subject: [PATCH 1/9] Try to fix benchmark workflow. --- .github/workflows/benchmark.yml | 35 +++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index d50cb0d4101..fdaee0a6c55 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -3,12 +3,12 @@ name: Benchmark on: push: paths-ignore: - - 'website/**' + - "website/**" branches: - master pull_request: paths-ignore: - - 'website/**' + - "website/**" types: [labeled, synchronize, opened, reopened] permissions: @@ -30,7 +30,6 @@ jobs: with: repository: krausest/js-framework-benchmark path: "./js-framework-benchmark" - ref: 3e0fff7973417acd8b00c2fc3e94a01dfa6f3438 - name: Setup toolchain uses: dtolnay/rust-toolchain@master @@ -70,30 +69,36 @@ jobs: - name: setup benchmark-struct benchmark shell: bash run: | - sed -i "s#../..#`realpath ./yew/`#" yew/tools/benchmark-struct/Cargo.toml - rm -rf js-framework-benchmark/frameworks/keyed/yew/* - cp -r yew/tools/benchmark-struct/* js-framework-benchmark/frameworks/keyed/yew/ + rm js-framework-benchmark/frameworks/keyed/yew/bundled_dist/*.js + rm js-framework-benchmark/frameworks/keyed/yew/bundled_dist/*.wasm - name: build benchmark-struct app shell: bash - working-directory: js-framework-benchmark/frameworks/keyed/yew/ + working-directory: yew/tools/benchmark-struct run: | - npm ci - npm run build-prod-without-tools-install + wasm-pack build \ + --release \ + --target web \ + --no-typescript \ + --out-name js-framework-benchmark-yew \ + --out-dir ../../frameworks/keyed/yew/bundled-dist - name: setup yew-hooks benchmark shell: bash run: | - sed -i "s#../..#`realpath ./yew/`#" yew/tools/benchmark-hooks/Cargo.toml - rm -rf js-framework-benchmark/frameworks/keyed/yew-hooks/* - cp -r yew/tools/benchmark-hooks/* js-framework-benchmark/frameworks/keyed/yew-hooks/ + rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled_dist/*.js + rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled_dist/*.wasm - name: build benchmark-hooks app shell: bash - working-directory: js-framework-benchmark/frameworks/keyed/yew-hooks/ + working-directory: yew/tools/benchmark-hooks run: | - npm ci - npm run build-prod-without-tools-install + wasm-pack build \ + --release \ + --target web \ + --no-typescript \ + --out-name js-framework-benchmark-yew-hooks \ + --out-dir ../../frameworks/keyed/yew-hooks/bundled-dist - name: run js-framework-benchmark server shell: bash From 95dd5b76be33386b0ef36ddd83a098bc2ea697e2 Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Thu, 2 Feb 2023 23:42:23 +0900 Subject: [PATCH 2/9] Fix benchmark workflow. --- .github/workflows/benchmark.yml | 35 +++++++++++---------------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index fdaee0a6c55..789808d6243 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -24,12 +24,12 @@ jobs: steps: - uses: actions/checkout@v2 with: - path: "./yew" + path: "yew" - uses: actions/checkout@v2 with: repository: krausest/js-framework-benchmark - path: "./js-framework-benchmark" + path: "js-framework-benchmark" - name: Setup toolchain uses: dtolnay/rust-toolchain@master @@ -45,21 +45,13 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 + cache: "npm" - uses: Swatinem/rust-cache@v2 with: working-directory: yew - - uses: actions/cache@v3 - with: - path: ~/.npm - key: ${{ runner.os }}-benchmark-${{ hashFiles('js-framework-benchmark/package-lock.json') }}-${{ hashFiles('js-framework-benchmark/webdriver-ts/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-benchmark- - ${{ runner.os }} - - name: setup js-framework-benchmark - shell: bash working-directory: js-framework-benchmark run: | npm ci @@ -67,13 +59,11 @@ jobs: npm run install-webdriver-ts - name: setup benchmark-struct benchmark - shell: bash run: | - rm js-framework-benchmark/frameworks/keyed/yew/bundled_dist/*.js - rm js-framework-benchmark/frameworks/keyed/yew/bundled_dist/*.wasm + rm js-framework-benchmark/frameworks/keyed/yew/bundled-dist/*.js + rm js-framework-benchmark/frameworks/keyed/yew/bundled-dist/*.wasm - name: build benchmark-struct app - shell: bash working-directory: yew/tools/benchmark-struct run: | wasm-pack build \ @@ -81,16 +71,14 @@ jobs: --target web \ --no-typescript \ --out-name js-framework-benchmark-yew \ - --out-dir ../../frameworks/keyed/yew/bundled-dist + --out-dir ../../js-framework-benchmark/frameworks/keyed/yew/bundled-dist - name: setup yew-hooks benchmark - shell: bash run: | - rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled_dist/*.js - rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled_dist/*.wasm + rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/*.js + rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/*.wasm - name: build benchmark-hooks app - shell: bash working-directory: yew/tools/benchmark-hooks run: | wasm-pack build \ @@ -101,17 +89,16 @@ jobs: --out-dir ../../frameworks/keyed/yew-hooks/bundled-dist - name: run js-framework-benchmark server - shell: bash working-directory: js-framework-benchmark - run: npm start & + run: | + npm start & + sleep 5 - name: js-framework-benchmark/webdriver-ts npm run bench - shell: bash working-directory: js-framework-benchmark/webdriver-ts run: npm run tsbench -- --framework keyed/yew keyed/yew-hooks --runner playwright --headless - name: transform results to be fit for display benchmark-action/github-action-benchmark@v1 - shell: bash run: | mkdir artifacts/ jq -s . js-framework-benchmark/webdriver-ts/results/*.json | cargo run --manifest-path yew/tools/Cargo.toml --release -p process-benchmark-results > artifacts/results.json From ddca4bbe74e83c57ffaa3ef8262a717cba981967 Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Thu, 2 Feb 2023 23:44:19 +0900 Subject: [PATCH 3/9] Fix benchmark workflow. --- .github/workflows/benchmark.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 789808d6243..99e25dff7d9 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -46,6 +46,7 @@ jobs: with: node-version: 16 cache: "npm" + cache-dependency-path: js-framework-benchmark/package-lock.json - uses: Swatinem/rust-cache@v2 with: From d945721bdcc403c74d6f531413bfe31e5ebe97f2 Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Thu, 2 Feb 2023 23:51:55 +0900 Subject: [PATCH 4/9] Fix workflow. --- .github/workflows/benchmark.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 99e25dff7d9..9379ba04148 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -44,7 +44,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 cache: "npm" cache-dependency-path: js-framework-benchmark/package-lock.json @@ -61,6 +61,7 @@ jobs: - name: setup benchmark-struct benchmark run: | + ls -lauh js-framework-benchmark/frameworks/keyed/yew/bundled-dist/ rm js-framework-benchmark/frameworks/keyed/yew/bundled-dist/*.js rm js-framework-benchmark/frameworks/keyed/yew/bundled-dist/*.wasm @@ -74,8 +75,13 @@ jobs: --out-name js-framework-benchmark-yew \ --out-dir ../../js-framework-benchmark/frameworks/keyed/yew/bundled-dist + - name: show built benchmark-struct benchmark files + run: | + ls -lauh js-framework-benchmark/frameworks/keyed/yew/bundled-dist/ + - name: setup yew-hooks benchmark run: | + ls -lauh js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/ rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/*.js rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/*.wasm @@ -87,7 +93,11 @@ jobs: --target web \ --no-typescript \ --out-name js-framework-benchmark-yew-hooks \ - --out-dir ../../frameworks/keyed/yew-hooks/bundled-dist + --out-dir ../../js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist + + - name: show built benchmark-hooks benchmark files + run: | + ls -lauh js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/ - name: run js-framework-benchmark server working-directory: js-framework-benchmark From 1bf7cc768128b55df7d98a8af874de086e91e8fe Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Thu, 2 Feb 2023 23:58:06 +0900 Subject: [PATCH 5/9] Fix benchmark workflow. --- .github/workflows/benchmark.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 9379ba04148..10cc40efa34 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -61,9 +61,11 @@ jobs: - name: setup benchmark-struct benchmark run: | - ls -lauh js-framework-benchmark/frameworks/keyed/yew/bundled-dist/ - rm js-framework-benchmark/frameworks/keyed/yew/bundled-dist/*.js - rm js-framework-benchmark/frameworks/keyed/yew/bundled-dist/*.wasm + ls -lauh + rm *.js + rm *.wasm + echo "STRUCT_BUILD_DIR=$PWD" >> $GITHUB_ENV + working-directory: js-framework-benchmark/frameworks/keyed/yew/bundled-dist/ - name: build benchmark-struct app working-directory: yew/tools/benchmark-struct @@ -73,7 +75,6 @@ jobs: --target web \ --no-typescript \ --out-name js-framework-benchmark-yew \ - --out-dir ../../js-framework-benchmark/frameworks/keyed/yew/bundled-dist - name: show built benchmark-struct benchmark files run: | @@ -81,9 +82,11 @@ jobs: - name: setup yew-hooks benchmark run: | - ls -lauh js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/ - rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/*.js - rm js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/*.wasm + ls -lauh + rm *.js + rm *.wasm + echo "HOOKS_BUILD_DIR=$PWD" >> $GITHUB_ENV + working-directory: js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist/ - name: build benchmark-hooks app working-directory: yew/tools/benchmark-hooks @@ -93,7 +96,7 @@ jobs: --target web \ --no-typescript \ --out-name js-framework-benchmark-yew-hooks \ - --out-dir ../../js-framework-benchmark/frameworks/keyed/yew-hooks/bundled-dist + --out-dir $HOOKS_BUILD_DIR - name: show built benchmark-hooks benchmark files run: | From 6efae27497b1fa14d430209c530667d225d1751f Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Fri, 3 Feb 2023 00:02:38 +0900 Subject: [PATCH 6/9] Fix workflow. --- .github/workflows/benchmark.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 10cc40efa34..c7dff139af4 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -75,6 +75,7 @@ jobs: --target web \ --no-typescript \ --out-name js-framework-benchmark-yew \ + --out-dir $STRUCT_BUILD_DIR - name: show built benchmark-struct benchmark files run: | From d8f4889f6f0dcf05e5c6cd8eaccd7ac07278e7b0 Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Fri, 3 Feb 2023 00:21:51 +0900 Subject: [PATCH 7/9] Disable headless mode. --- .github/workflows/benchmark.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index c7dff139af4..826c56ae6e2 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -111,7 +111,7 @@ jobs: - name: js-framework-benchmark/webdriver-ts npm run bench working-directory: js-framework-benchmark/webdriver-ts - run: npm run tsbench -- --framework keyed/yew keyed/yew-hooks --runner playwright --headless + run: npm run tsbench -- --framework keyed/yew keyed/yew-hooks --runner playwright - name: transform results to be fit for display benchmark-action/github-action-benchmark@v1 run: | From f0721e570b86dbd7931e85fd2f9a3d1664bf5e8c Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Fri, 3 Feb 2023 00:29:26 +0900 Subject: [PATCH 8/9] Install xvfb --- .github/workflows/benchmark.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 826c56ae6e2..35eeafde131 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -31,6 +31,11 @@ jobs: repository: krausest/js-framework-benchmark path: "js-framework-benchmark" + - name: Install xvfb + run: | + sudo apt-get update + sudo apt-get install xvfb + - name: Setup toolchain uses: dtolnay/rust-toolchain@master with: @@ -111,7 +116,7 @@ jobs: - name: js-framework-benchmark/webdriver-ts npm run bench working-directory: js-framework-benchmark/webdriver-ts - run: npm run tsbench -- --framework keyed/yew keyed/yew-hooks --runner playwright + run: xvfb-run npm run tsbench -- --framework keyed/yew keyed/yew-hooks --runner playwright - name: transform results to be fit for display benchmark-action/github-action-benchmark@v1 run: | From b93f6fed034e95e7f6c1d8ba15390918b6d2b2ee Mon Sep 17 00:00:00 2001 From: Kaede Hoshikawa Date: Fri, 3 Feb 2023 00:48:28 +0900 Subject: [PATCH 9/9] Remove unneeded install. --- .github/workflows/benchmark.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 35eeafde131..ee5ceab572b 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -31,11 +31,6 @@ jobs: repository: krausest/js-framework-benchmark path: "js-framework-benchmark" - - name: Install xvfb - run: | - sudo apt-get update - sudo apt-get install xvfb - - name: Setup toolchain uses: dtolnay/rust-toolchain@master with: