Add GitHub CI build #36
Workflow file for this run
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-x64-windows-webkit: | |
name: Build x64-windows-webkit | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Download the latest vcpkg locally | |
- name: Checkout vcpkg | |
run: git clone --depth 1 https://github.com/microsoft/vcpkg.git ../vcpkg | |
- name: Install vcpkg | |
run: ./Install-Vcpkg.ps1 -vcpkgPath ../vcpkg | |
- 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-triplets ./triplets --triplet x64-windows-webkit | |
- 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 libressl | |
id: libressl | |
if: steps.vcpkg.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install libressl[tools] --overlay-triplets ./triplets --triplet x64-windows-webkit | |
- 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 ngtcp2 | |
id: ngtcp2 | |
if: steps.libressl.outcome == 'success' | |
continue-on-error: true | |
run: ./vcpkg.exe install ngtcp2[libressl] --overlay-triplets ./triplets --triplet x64-windows-webkit | |
- 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-triplets ./triplets --triplet x64-windows-webkit | |
- 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-triplets ./triplets --triplet x64-windows-webkit | |
- 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 | |
# 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' | |
run: exit 1 |