From bfa6f5555196eeedb631601f2bb0ca98236cf5c7 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Tue, 16 Jul 2024 17:31:39 +0200 Subject: [PATCH 1/2] ci: remove container usage and download v8 from release --- .github/actions/install/action.yml | 61 +++++++++++++++++++++++++++--- .github/workflows/build.yml | 29 ++++---------- .github/workflows/wpt.yml | 11 ------ .github/workflows/zig-fmt.yml | 14 +++---- .github/workflows/zig-test.yml | 21 ---------- 5 files changed, 69 insertions(+), 67 deletions(-) diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml index 7f544947..b42276cb 100644 --- a/.github/actions/install/action.yml +++ b/.github/actions/install/action.yml @@ -1,23 +1,72 @@ name: "Browsercore install" description: "Install deps for the project browsercore" +inputs: + zig: + description: 'Zig version to install' + required: false + default: '0.12.1' + arch: + description: 'CPU arch used to select the v8 lib' + required: false + default: 'x86_64' + os: + description: 'OS used to select the v8 lib' + required: false + default: 'linux' + zig-v8: + description: 'zig v8 version to install' + required: false + default: 'v0.1.5' + v8: + description: 'v8 version to install' + required: false + default: '11.1.134' + cache-dir: + description: 'cache dir to use' + required: false + default: '~/.cache' + runs: using: "composite" steps: + - name: Install apt deps + shell: bash + run: sudo apt-get install -y wget xz-utils python3 ca-certificates git pkg-config libglib2.0-dev gperf libexpat1-dev cmake clang + + - uses: mlugg/setup-zig@v1 + with: + version: ${{ inputs.zig }} + + - name: Cache v8 + id: cache-v8 + uses: actions/cache@v3 + env: + cache-name: cache-v8 + with: + path: ${{ inputs.cache-dir }}/v8 + key: libc_v8_${{ inputs.v8 }}_${{ inputs.os }}_${{ inputs.arch }}.a + + - if: ${{ steps.cache-v8.outputs.cache-hit != 'true' }} + shell: bash + run: | + mkdir -p ${{ inputs.cache-dir }}/v8 + + wget -O ${{ inputs.cache-dir }}/v8/libc_v8.a https://github.com/lightpanda-io/zig-v8-fork/releases/download/${{ inputs.zig-v8 }}/libc_v8_${{ inputs.v8 }}_${{ inputs.os }}_${{ inputs.arch }}.a + - name: install v8 shell: bash run: | - mkdir -p vendor/zig-js-runtime/vendor/v8/${{env.ARCH}}/debug - ln -s /usr/local/lib/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{env.ARCH}}/debug/libc_v8.a + mkdir -p vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/debug + ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/debug/libc_v8.a - mkdir -p vendor/zig-js-runtime/vendor/v8/${{env.ARCH}}/release - ln -s /usr/local/lib/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{env.ARCH}}/release/libc_v8.a + mkdir -p vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/release + ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/release/libc_v8.a - name: libiconv shell: bash - run: | - ln -s /usr/local/lib/libiconv vendor/libiconv + run: make install-libiconv - name: build mimalloc shell: bash diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 80a2621c..8a854f30 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,8 +1,5 @@ name: nightly build -env: - ARCH: x86_64-linux - on: schedule: - cron: "2 2 * * *" @@ -12,26 +9,14 @@ on: permissions: contents: write - packages: read jobs: - build: - name: nightly build + build-linux-x86_64: + env: + ARCH: x86_64 + OS: linux - strategy: - matrix: - target: - - x86_64-linux - include: - - target: x86_64-linux - os: ubuntu-latest - - runs-on: ${{ matrix.os }} - container: - image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1 - credentials: - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -47,11 +32,11 @@ jobs: run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 - name: Rename binary - run: mv zig-out/bin/browsercore-get lightpanda-get-${{ matrix.target }} + run: mv zig-out/bin/browsercore-get lightpanda-get-${{ env.ARCH }}-${{ env.OS }} - name: Upload the build uses: ncipollo/release-action@v1 with: allowUpdates: true - artifacts: lightpanda-get-${{ matrix.target }} + artifacts: lightpanda-get-${{ env.ARCH }}-${{ env.OS }} tag: nightly diff --git a/.github/workflows/wpt.yml b/.github/workflows/wpt.yml index 62d76847..10fdfeaf 100644 --- a/.github/workflows/wpt.yml +++ b/.github/workflows/wpt.yml @@ -1,7 +1,6 @@ name: wpt env: - ARCH: x86_64-linux AWS_ACCESS_KEY_ID: ${{ vars.LPD_PERF_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.LPD_PERF_AWS_SECRET_ACCESS_KEY }} AWS_BUCKET: ${{ vars.LPD_PERF_AWS_BUCKET }} @@ -46,16 +45,6 @@ jobs: if: github.event.pull_request.draft == false runs-on: ubuntu-latest - container: - image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1 - credentials: - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # docker blocks io_uring syscalls by default now. - # see https://github.com/tigerbeetle/tigerbeetle/pull/1995 - # see https://github.com/moby/moby/pull/46762 - options: "--security-opt seccomp=unconfined" steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/zig-fmt.yml b/.github/workflows/zig-fmt.yml index b8f712ca..0d5eb319 100644 --- a/.github/workflows/zig-fmt.yml +++ b/.github/workflows/zig-fmt.yml @@ -1,5 +1,8 @@ name: zig-fmt +env: + ZIG_VERSION: 0.12.1 + on: pull_request: @@ -26,15 +29,12 @@ jobs: if: github.event.pull_request.draft == false runs-on: ubuntu-latest - container: - image: ghcr.io/lightpanda-io/zig:0.12.1 - credentials: - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - outputs: - zig_fmt_errs: ${{ steps.fmt.outputs.zig_fmt_errs }} steps: + - uses: mlugg/setup-zig@v1 + with: + version: ${{ env.ZIG_VERSION }} + - uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/zig-test.yml b/.github/workflows/zig-test.yml index 72a2d8ce..a341c9c0 100644 --- a/.github/workflows/zig-test.yml +++ b/.github/workflows/zig-test.yml @@ -1,7 +1,6 @@ name: zig-test env: - ARCH: x86_64-linux AWS_ACCESS_KEY_ID: ${{ vars.LPD_PERF_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.LPD_PERF_AWS_SECRET_ACCESS_KEY }} AWS_BUCKET: ${{ vars.LPD_PERF_AWS_BUCKET }} @@ -44,11 +43,6 @@ jobs: if: github.event.pull_request.draft == false runs-on: ubuntu-latest - container: - image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1 - credentials: - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 @@ -70,11 +64,6 @@ jobs: if: github.event_name != 'pull_request' runs-on: ubuntu-latest - container: - image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1 - credentials: - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v4 @@ -96,16 +85,6 @@ jobs: if: github.event.pull_request.draft == false runs-on: ubuntu-latest - container: - image: ghcr.io/lightpanda-io/zig-browsercore:0.12.1 - credentials: - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # docker blocks io_uring syscalls by default now. - # see https://github.com/tigerbeetle/tigerbeetle/pull/1995 - # see https://github.com/moby/moby/pull/46762 - options: "--security-opt seccomp=unconfined" steps: - uses: actions/checkout@v4 From cdbbc71b0a1c5ec61b3ee66f41ef02fc11f6e0d9 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Wed, 17 Jul 2024 10:04:02 +0200 Subject: [PATCH 2/2] ci: add nightly build for macos aarch64 --- .github/actions/install/action.yml | 1 + .github/workflows/build.yml | 33 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml index b42276cb..54aab09a 100644 --- a/.github/actions/install/action.yml +++ b/.github/actions/install/action.yml @@ -32,6 +32,7 @@ runs: steps: - name: Install apt deps + if: ${{ inputs.os == 'linux' }} shell: bash run: sudo apt-get install -y wget xz-utils python3 ca-certificates git pkg-config libglib2.0-dev gperf libexpat1-dev cmake clang diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8a854f30..5df73d07 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,3 +40,36 @@ jobs: allowUpdates: true artifacts: lightpanda-get-${{ env.ARCH }}-${{ env.OS }} tag: nightly + + build-macos-aarch64: + env: + ARCH: aarch64 + OS: macos + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_CI_PAT }} + # fetch submodules recusively, to get zig-js-runtime submodules also. + submodules: recursive + + - uses: ./.github/actions/install + with: + os: ${{env.OS}} + arch: ${{env.ARCH}} + + - name: zig build + run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 + + - name: Rename binary + run: mv zig-out/bin/browsercore-get lightpanda-get-${{ env.ARCH }}-${{ env.OS }} + + - name: Upload the build + uses: ncipollo/release-action@v1 + with: + allowUpdates: true + artifacts: lightpanda-get-${{ env.ARCH }}-${{ env.OS }} + tag: nightly