name: "Browsercore install" description: "Install deps for the project browsercore" inputs: zig: description: 'Zig version to install' required: false default: '0.15.2' 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.35' v8: description: 'v8 version to install' required: false default: '14.0.365.4' cache-dir: description: 'cache dir to use' required: false default: '~/.cache' mode: description: 'debug or release' required: false default: 'debug' runs: using: "composite" steps: - name: Install apt deps if: ${{ inputs.os == 'linux' }} shell: bash run: | sudo apt-get update 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@v2.0.5 with: version: ${{ inputs.zig }} - name: Cache v8 id: cache-v8 uses: actions/cache@v4 env: cache-name: cache-v8 with: path: ${{ inputs.cache-dir }}/v8 key: libc_v8_${{ inputs.v8 }}_${{ inputs.os }}_${{ inputs.arch }}_${{ inputs.zig-v8 }}.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 release if: ${{ inputs.mode == 'release' }} shell: bash run: | mkdir -p v8/out/${{ inputs.os }}/release/obj/zig/ ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a v8/out/${{ inputs.os }}/release/obj/zig/libc_v8.a - name: install v8 debug if: ${{ inputs.mode == 'debug' }} shell: bash run: | mkdir -p v8/out/${{ inputs.os }}/debug/obj/zig/ ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a v8/out/${{ inputs.os }}/debug/obj/zig/libc_v8.a - name: hmtl5ever release if: ${{ inputs.mode == 'release' }} shell: bash run: zig build -Doptimize=ReleaseFast html5ever - name: hmtl5ever debug if: ${{ inputs.mode == 'debug' }} shell: bash run: zig build html5ever