Add GitHub CI build #45
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
workflow_dispatch: | |
jobs: | |
build-requirements: | |
name: Build WebKit Requirements | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
triplet: [x64-windows] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: microsoft/vcpkg | |
- uses: actions/checkout@v4 | |
with: | |
path: WebKitRequirements | |
# Download the latest vcpkg locally | |
- name: Install vcpkg | |
run: ./scripts/bootstrap.ps1 -disableMetrics | |
- name: Version information of vcpkg | |
id: vcpkg | |
run: ./vcpkg.exe version | |
# Build the individual ports | |
# | |
# The ordering corresponds to `WindowsRequirements.json`. Build of a port | |
# is conditional on its dependencies | |
- name: Build zlib | |
id: zlib | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install zlib --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read zlib config | |
if: steps.zlib.outcome == 'success' || steps.zlib.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/zlib/config-x64-windows-webkit-out.log | |
- name: Read zlib debug build log | |
if: steps.zlib.outcome == 'success' || steps.zlib.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/zlib/install-x64-windows-webkit-dbg-out.log | |
- name: Read zlib release build log | |
if: steps.zlib.outcome == 'success' || steps.zlib.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/zlib/install-x64-windows-webkit-rel-out.log | |
- name: Build brotli | |
id: brotli | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install brotli --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read brotli config | |
if: steps.brotli.outcome == 'success' || steps.brotli.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/brotli/config-x64-windows-webkit-out.log | |
- name: Read brotli debug build log | |
if: steps.brotli.outcome == 'success' || steps.brotli.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/brotli/install-x64-windows-webkit-dbg-out.log | |
- name: Read brotli release build log | |
if: steps.brotli.outcome == 'success' || steps.brotli.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/brotli/install-x64-windows-webkit-rel-out.log | |
- name: Build libressl | |
id: libressl | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libressl[tools] --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read libressl config | |
if: steps.libressl.outcome == 'success' || steps.libressl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libressl/config-x64-windows-webkit-out.log | |
- name: Read libressl debug build log | |
if: steps.libressl.outcome == 'success' || steps.libressl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libressl/install-x64-windows-webkit-dbg-out.log | |
- name: Read libressl release build log | |
if: steps.libressl.outcome == 'success' || steps.libressl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libressl/install-x64-windows-webkit-rel-out.log | |
- name: Build nghttp2 | |
id: nghttp2 | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install nghttp2 --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read nghttp2 config | |
if: steps.nghttp2.outcome == 'success' || steps.nghttp2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/nghttp2/config-x64-windows-webkit-out.log | |
- name: Read nghttp2 debug build log | |
if: steps.nghttp2.outcome == 'success' || steps.nghttp2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/nghttp2/install-x64-windows-webkit-dbg-out.log | |
- name: Read nghttp2 release build log | |
if: steps.nghttp2.outcome == 'success' || steps.nghttp2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/nghttp2/install-x64-windows-webkit-rel-out.log | |
- name: Build ngtcp2 | |
id: ngtcp2 | |
if: steps.libressl.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install ngtcp2[libressl] --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read ngtcp2 config | |
if: steps.ngtcp2.outcome == 'success' || steps.ngtcp2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/ngtcp2/config-x64-windows-webkit-out.log | |
- name: Read ngtcp2 debug build log | |
if: steps.ngtcp2.outcome == 'success' || steps.ngtcp2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/ngtcp2/install-x64-windows-webkit-dbg-out.log | |
- name: Read ngtcp2 release build log | |
if: steps.ngtcp2.outcome == 'success' || steps.ngtcp2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/ngtcp2/install-x64-windows-webkit-rel-out.log | |
- name: Build nghttp3 | |
id: nghttp3 | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install nghttp3 --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read nghttp3 config | |
if: steps.nghttp3.outcome == 'success' || steps.nghttp3.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/nghttp3/config-x64-windows-webkit-out.log | |
- name: Read nghttp3 debug build log | |
if: steps.nghttp3.outcome == 'success' || steps.nghttp3.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/nghttp3/install-x64-windows-webkit-dbg-out.log | |
- name: Read nghttp3 release build log | |
if: steps.nghttp3.outcome == 'success' || steps.nghttp3.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/nghttp3/install-x64-windows-webkit-rel-out.log | |
- name: Build curl | |
id: curl | |
if: | | |
steps.brotli.outcome == 'success' && | |
steps.nghttp2.outcome == 'success' && | |
steps.zlib.outcome == 'success' && | |
steps.libressl.outcome == 'success' && | |
steps.ngtcp2.outcome == 'success' && | |
steps.nghttp3.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install curl[libressl,http3,ipv6] --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read curl config | |
if: steps.curl.outcome == 'success' || steps.curl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/curl/config-x64-windows-webkit-out.log | |
- name: Read curl debug build log | |
if: steps.curl.outcome == 'success' || steps.curl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/curl/install-x64-windows-webkit-dbg-out.log | |
- name: Read curl release build log | |
if: steps.curl.outcome == 'success' || steps.curl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/curl/install-x64-windows-webkit-rel-out.log | |
- name: Build icu | |
id: icu | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install icu --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read icu config | |
if: steps.icu.outcome == 'success' || steps.icu.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/icu/config-x64-windows-webkit-out.log | |
- name: Read icu debug build log | |
if: steps.icu.outcome == 'success' || steps.icu.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/icu/install-x64-windows-webkit-dbg-out.log | |
- name: Read icu release build log | |
if: steps.icu.outcome == 'success' || steps.icu.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/icu/install-x64-windows-webkit-rel-out.log | |
- name: Build libxml2 | |
id: libxml2 | |
if: steps.icu.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libxml2[xslt] --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read libxml2 config | |
if: steps.libxml2.outcome == 'success' || steps.libxml2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libxml2/config-x64-windows-webkit-out.log | |
- name: Read libxml2 debug build log | |
if: steps.libxml2.outcome == 'success' || steps.libxml2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libxml2/install-x64-windows-webkit-dbg-out.log | |
- name: Read libxml2 release build log | |
if: steps.libxml2.outcome == 'success' || steps.libxml2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libxml2/install-x64-windows-webkit-rel-out.log | |
- name: Build libxslt | |
id: libxslt | |
if: steps.libxml2.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libxslt --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read libxslt config | |
if: steps.libxslt.outcome == 'success' || steps.libxslt.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libxslt/config-x64-windows-webkit-out.log | |
- name: Read libxslt debug build log | |
if: steps.libxslt.outcome == 'success' || steps.libxslt.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libxslt/install-x64-windows-webkit-dbg-out.log | |
- name: Read libxslt release build log | |
if: steps.libxslt.outcome == 'success' || steps.libxslt.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libxslt/install-x64-windows-webkit-rel-out.log | |
- name: Build lcms | |
id: lcms | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install lcms --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read lcms config | |
if: steps.lcms.outcome == 'success' || steps.lcms.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/lcms/config-x64-windows-webkit-out.log | |
- name: Read lcms debug build log | |
if: steps.lcms.outcome == 'success' || steps.lcms.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/lcms/install-x64-windows-webkit-dbg-out.log | |
- name: Read lcms release build log | |
if: steps.lcms.outcome == 'success' || steps.lcms.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/lcms/install-x64-windows-webkit-rel-out.log | |
- name: Build highway | |
id: highway | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install highway --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read highway config | |
if: steps.highway.outcome == 'success' || steps.highway.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/highway/config-x64-windows-webkit-out.log | |
- name: Read highway debug build log | |
if: steps.highway.outcome == 'success' || steps.highway.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/highway/install-x64-windows-webkit-dbg-out.log | |
- name: Read highway release build log | |
if: steps.highway.outcome == 'success' || steps.highway.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/highway/install-x64-windows-webkit-rel-out.log | |
- name: Build libpng | |
id: libpng | |
if: steps.zlib.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libpng --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read libpng config | |
if: steps.libpng.outcome == 'success' || steps.libpng.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libpng/config-x64-windows-webkit-out.log | |
- name: Read libpng debug build log | |
if: steps.libpng.outcome == 'success' || steps.libpng.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libpng/install-x64-windows-webkit-dbg-out.log | |
- name: Read libpng release build log | |
if: steps.libpng.outcome == 'success' || steps.libpng.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libpng/install-x64-windows-webkit-rel-out.log | |
- name: Build libjpeg-turbo | |
id: libjpeg | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libjpeg-turbo --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read libjpeg-turbo config | |
if: steps.libjpeg.outcome == 'success' || steps.libjpeg.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libjpeg-turbo/config-x64-windows-webkit-out.log | |
- name: Read libjpeg-turbo debug build log | |
if: steps.libjpeg.outcome == 'success' || steps.libjpeg.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libjpeg-turbo/install-x64-windows-webkit-dbg-out.log | |
- name: Read libjpeg-turbo release build log | |
if: steps.libjpeg.outcome == 'success' || steps.libjpeg.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libjpeg-turbo/install-x64-windows-webkit-rel-out.log | |
- name: Build libwebp | |
id: libwebp | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libwebp --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read libwebp config | |
if: steps.libwebp.outcome == 'success' || steps.libwebp.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libwebp/config-x64-windows-webkit-out.log | |
- name: Read libwebp debug build log | |
if: steps.libwebp.outcome == 'success' || steps.libwebp.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libwebp/install-x64-windows-webkit-dbg-out.log | |
- name: Read libwebp release build log | |
if: steps.libwebp.outcome == 'success' || steps.libwebp.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libwebp/install-x64-windows-webkit-rel-out.log | |
- name: Build libjxl | |
id: libjxl | |
if: | | |
steps.brotli.outcome == 'success' && | |
steps.highway.outcome == 'success' && | |
steps.lcms.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libjxl --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read libjxl config | |
if: steps.libjxl.outcome == 'success' || steps.libjxl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libjxl/config-x64-windows-webkit-out.log | |
- name: Read libjxl debug build log | |
if: steps.libjxl.outcome == 'success' || steps.libjxl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libjxl/install-x64-windows-webkit-dbg-out.log | |
- name: Read libjxl release build log | |
if: steps.libjxl.outcome == 'success' || steps.libjxl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libjxl/install-x64-windows-webkit-rel-out.log | |
- name: Build sqlite3 | |
id: sqlite3 | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install sqlite3 --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read sqlite3 config | |
if: steps.sqlite3.outcome == 'success' || steps.sqlite3.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/sqlite3/config-x64-windows-webkit-out.log | |
- name: Read sqlite3 debug build log | |
if: steps.sqlite3.outcome == 'success' || steps.sqlite3.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/sqlite3/install-x64-windows-webkit-dbg-out.log | |
- name: Read sqlite3 release build log | |
if: steps.sqlite3.outcome == 'success' || steps.sqlite3.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/sqlite3/install-x64-windows-webkit-rel-out.log | |
- name: Build woff2 | |
id: woff2 | |
if: steps.brotli.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install woff2 --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read woff2 config | |
if: steps.woff2.outcome == 'success' || steps.woff2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/woff2/config-x64-windows-webkit-out.log | |
- name: Read woff2 debug build log | |
if: steps.woff2.outcome == 'success' || steps.woff2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/woff2/install-x64-windows-webkit-dbg-out.log | |
- name: Read woff2 release build log | |
if: steps.woff2.outcome == 'success' || steps.woff2.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/woff2/install-x64-windows-webkit-rel-out.log | |
- name: Build pixman | |
id: pixman | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install pixman --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read pixman config | |
if: steps.pixman.outcome == 'success' || steps.pixman.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/pixman/config-x64-windows-webkit-out.log | |
- name: Read pixman debug build log | |
if: steps.pixman.outcome == 'success' || steps.pixman.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/pixman/install-x64-windows-webkit-dbg-out.log | |
- name: Read pixman release build log | |
if: steps.pixman.outcome == 'success' || steps.pixman.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/pixman/install-x64-windows-webkit-rel-out.log | |
- name: Build cairo | |
id: cairo | |
if: steps.libpng.outcome == 'success' && steps.pixman.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install cairo --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read cairo config | |
if: steps.cairo.outcome == 'success' || steps.cairo.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/cairo/config-x64-windows-webkit-out.log | |
- name: Read cairo debug build log | |
if: steps.cairo.outcome == 'success' || steps.cairo.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/cairo/install-x64-windows-webkit-dbg-out.log | |
- name: Read cairo release build log | |
if: steps.cairo.outcome == 'success' || steps.cairo.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/cairo/install-x64-windows-webkit-rel-out.log | |
- name: Build libpsl | |
id: libpsl | |
if: steps.icu.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libpsl --overlay-ports ./WebKitRequirements/ports --triplet ${{ matrix.triplet }} | |
- name: Read libpsl config | |
if: steps.libpsl.outcome == 'success' || steps.libpsl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libpsl/config-x64-windows-webkit-out.log | |
- name: Read libpsl debug build log | |
if: steps.libpsl.outcome == 'success' || steps.libpsl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libpsl/install-x64-windows-webkit-dbg-out.log | |
- name: Read libpsl release build log | |
if: steps.libpsl.outcome == 'success' || steps.libpsl.outcome == 'failure' | |
continue-on-error: true | |
run: Get-Content ./buildtrees/libpsl/install-x64-windows-webkit-rel-out.log | |
# See if any of the previous build steps had an outcome of `failure` | |
# | |
# Each step sets `continue-on-error` so there needs to be a check | |
# otherwise the pipeline will be successful | |
- name: Build verification | |
if: | | |
steps.zlib.outcome == 'failure' || | |
steps.brotli.outcome == 'failure' || | |
steps.libressl.outcome == 'failure' || | |
steps.nghttp2.outcome == 'failure' || | |
steps.ngtcp2.outcome == 'failure' || | |
steps.nghttp3.outcome == 'failure' || | |
steps.curl.outcome == 'failure' || | |
steps.icu.outcome == 'failure' || | |
steps.libxml2.outcome == 'failure' || | |
steps.libxslt.outcome == 'failure' || | |
steps.lcms.outcome == 'failure' || | |
steps.highway.outcome == 'failure' || | |
steps.libpng.outcome == 'failure' || | |
steps.libjpeg.outcome == 'failure' || | |
steps.libwebp.outcome == 'failure' || | |
steps.libjxl.outcome == 'failure' || | |
steps.sqlite3.outcome == 'failure' || | |
steps.woff2.outcome == 'failure' || | |
steps.pixman.outcome == 'failure' || | |
steps.cairo.outcome == 'failure' || | |
steps.libpsl.outcome == 'failure' | |
run: exit 1 |