From ffbcfc18f12b46a27147aa26164f210350dff340 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Tue, 16 Apr 2024 15:24:16 +0200 Subject: [PATCH] ci: extract install steps in its own action --- .github/actions/install/action.yml | 49 +++++++++++++++++++++ .github/workflows/wpt.yml | 16 +------ .github/workflows/zig-test.yml | 71 ++---------------------------- 3 files changed, 53 insertions(+), 83 deletions(-) create mode 100644 .github/actions/install/action.yml diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml new file mode 100644 index 00000000..be6747f1 --- /dev/null +++ b/.github/actions/install/action.yml @@ -0,0 +1,49 @@ +name: "Browsercore install" +description: "Install deps for the project browsercore" + +runs: + using: "composite" + + steps: + - name: install v8 + shell: bash + run: | + mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug + ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug/libc_v8.a + + mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release + ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release/libc_v8.a + + - name: install deps + shell: bash + run: | + ln -s /usr/local/lib/libiconv vendor/libiconv + + ln -s /usr/local/lib/netsurf/build vendor/netsurf/build + ln -s /usr/local/lib/netsurf/lib vendor/netsurf/lib + ln -s /usr/local/lib/netsurf/include vendor/netsurf/include + + # detect file change + - uses: dorny/paths-filter@v3.0.2 + id: changes + with: + filters: | + netsurf: + - 'vendor/netsurf/**' + + # if a vendor has changed, install build dependencies. + - name: install build dependencies + if: steps.changes.outputs.netsurf == 'true' + shell: bash + run: | + apt update && \ + apt install -y git curl bash xz-utils python3 ca-certificates pkg-config \ + libglib2.0-dev gperf libexpat1-dev cmake build-essential + + # if netsurf has changed, force a rebuild. + - name: re-build netsurf + if: steps.changes.outputs.netsurf == 'true' + shell: bash + run: | + make clean-netsurf + make install-netsurf diff --git a/.github/workflows/wpt.yml b/.github/workflows/wpt.yml index 33fb2c9e..a92fd30f 100644 --- a/.github/workflows/wpt.yml +++ b/.github/workflows/wpt.yml @@ -57,21 +57,7 @@ jobs: # fetch submodules recusively, to get jsruntime-lib submodules also. submodules: recursive - - name: install v8 - run: | - mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug - ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug/libc_v8.a - - mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release - ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release/libc_v8.a - - - name: install deps - run: | - ln -s /usr/local/lib/libiconv vendor/libiconv - - ln -s /usr/local/lib/netsurf/build vendor/netsurf/build - ln -s /usr/local/lib/netsurf/lib vendor/netsurf/lib - ln -s /usr/local/lib/netsurf/include vendor/netsurf/include + - uses: ./.github/actions/install - run: zig build wpt -Dengine=v8 -- --safe --summary diff --git a/.github/workflows/zig-test.yml b/.github/workflows/zig-test.yml index f765e80f..af38bc69 100644 --- a/.github/workflows/zig-test.yml +++ b/.github/workflows/zig-test.yml @@ -60,21 +60,7 @@ jobs: # fetch submodules recusively, to get jsruntime-lib submodules also. submodules: recursive - - name: install v8 - run: | - mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug - ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug/libc_v8.a - - mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release - ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release/libc_v8.a - - - name: install deps - run: | - ln -s /usr/local/lib/libiconv vendor/libiconv - - ln -s /usr/local/lib/netsurf/build vendor/netsurf/build - ln -s /usr/local/lib/netsurf/lib vendor/netsurf/lib - ln -s /usr/local/lib/netsurf/include vendor/netsurf/include + - uses: ./.github/actions/install - name: zig build debug run: zig build -Dengine=v8 @@ -100,21 +86,7 @@ jobs: # fetch submodules recusively, to get jsruntime-lib submodules also. submodules: recursive - - name: install v8 - run: | - mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug - ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug/libc_v8.a - - mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release - ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release/libc_v8.a - - - name: install deps - run: | - ln -s /usr/local/lib/libiconv vendor/libiconv - - ln -s /usr/local/lib/netsurf/build vendor/netsurf/build - ln -s /usr/local/lib/netsurf/lib vendor/netsurf/lib - ln -s /usr/local/lib/netsurf/include vendor/netsurf/include + - uses: ./.github/actions/install - name: zig build release run: zig build -Doptimize=ReleaseSafe -Dengine=v8 @@ -140,44 +112,7 @@ jobs: # fetch submodules recusively, to get jsruntime-lib submodules also. submodules: recursive - - name: install v8 - run: | - mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug - ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/debug/libc_v8.a - - mkdir -p vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release - ln -s /usr/local/lib/libc_v8.a vendor/jsruntime-lib/vendor/v8/${{env.ARCH}}/release/libc_v8.a - - - name: install deps - run: | - ln -s /usr/local/lib/libiconv vendor/libiconv - - ln -s /usr/local/lib/netsurf/build vendor/netsurf/build - ln -s /usr/local/lib/netsurf/lib vendor/netsurf/lib - ln -s /usr/local/lib/netsurf/include vendor/netsurf/include - - # detect file change - - uses: dorny/paths-filter@v3.0.2 - id: changes - with: - filters: | - netsurf: - - 'vendor/netsurf/**' - - # if a vendor has changed, install build dependencies. - - name: install build dependencies - if: steps.changes.outputs.netsurf == 'true' - run: | - apt update && \ - apt install -y git curl bash xz-utils python3 ca-certificates pkg-config \ - libglib2.0-dev gperf libexpat1-dev cmake build-essential - - # if netsurf has changed, force a rebuild. - - name: build netsurf - if: steps.changes.outputs.netsurf == 'true' - run: | - make clean-netsurf - make install-netsurf + - uses: ./.github/actions/install - name: zig build test run: zig build test -Dengine=v8 -- --json > bench.json