Skip to content

Add GitHub CI build #36

Add GitHub CI build

Add GitHub CI build #36

Workflow file for this run

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