mirror of
https://github.com/google/brotli.git
synced 2024-11-22 03:30:07 +00:00
118 lines
3.2 KiB
YAML
118 lines
3.2 KiB
YAML
# Copyright 2023 Google Inc. All Rights Reserved.
|
|
#
|
|
# Distributed under MIT license.
|
|
# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
|
|
# Workflow for building the release binaries.
|
|
|
|
name: Release build / deploy
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- v*.*.*
|
|
release:
|
|
types: [ published ]
|
|
|
|
jobs:
|
|
windows_build:
|
|
name: Windows Build (vcpkg / ${{ matrix.triplet }})
|
|
runs-on: [windows-2022]
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- triplet: x86-windows-dynamic
|
|
arch: '-A Win32'
|
|
build_shared_libs: 'ON'
|
|
- triplet: x64-windows-dynamic
|
|
arch: '-A x64'
|
|
build_shared_libs: 'ON'
|
|
- triplet: x86-windows-static
|
|
arch: '-A Win32'
|
|
build_shared_libs: 'OFF'
|
|
- triplet: x64-windows-static
|
|
arch: '-A x64'
|
|
build_shared_libs: 'OFF'
|
|
|
|
env:
|
|
VCPKG_VERSION: '2022.11.14'
|
|
VCPKG_ROOT: vcpkg
|
|
VCPKG_DISABLE_METRICS: 1
|
|
|
|
steps:
|
|
- name: Checkout the source
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: false
|
|
fetch-depth: 1
|
|
|
|
- uses: actions/cache@v3
|
|
id: cache-vcpkg
|
|
with:
|
|
path: vcpkg
|
|
key: release-${{ runner.os }}-vcpkg-${{ env.VCPKG_VERSION }}-${{ matrix.triplet }}
|
|
|
|
- name: Download vcpkg
|
|
if: steps.cache-vcpkg.outputs.cache-hit != 'true'
|
|
# wget doesn't seem to work under bash.
|
|
shell: 'powershell'
|
|
run: |
|
|
C:\msys64\usr\bin\wget.exe -nv `
|
|
https://github.com/microsoft/vcpkg/archive/refs/tags/${{ env.VCPKG_VERSION }}.zip `
|
|
-O vcpkg.zip
|
|
- name: Bootstrap vcpkg
|
|
if: steps.cache-vcpkg.outputs.cache-hit != 'true'
|
|
shell: 'bash'
|
|
run: |
|
|
set -x
|
|
unzip -q vcpkg.zip
|
|
rm -rf ${VCPKG_ROOT}
|
|
mv vcpkg-${VCPKG_VERSION} ${VCPKG_ROOT}
|
|
${VCPKG_ROOT}/bootstrap-vcpkg.sh
|
|
|
|
- name: Configure
|
|
shell: 'bash'
|
|
run: |
|
|
set -x
|
|
mkdir out
|
|
cmake -Bout -H. ${{ matrix.arch }} \
|
|
-DBUILD_TESTING=OFF \
|
|
-DBUILD_SHARED_LIBS=${{ matrix.build_shared_libs }} \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_PREFIX=`pwd`/prefix \
|
|
-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake \
|
|
-DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} \
|
|
#
|
|
- name: Build
|
|
shell: 'bash'
|
|
run: |
|
|
set -x
|
|
cmake --build out --config Release
|
|
- name: Install
|
|
shell: 'bash'
|
|
run: |
|
|
set -x
|
|
cmake --build out --config Release --target install
|
|
cp LICENSE prefix/bin/LICENSE.brotli
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: brotli-${{matrix.triplet}}
|
|
path: |
|
|
prefix/bin/*
|
|
|
|
- name: Package release zip
|
|
if: github.event_name == 'release'
|
|
shell: 'powershell'
|
|
run: |
|
|
Compress-Archive -Path prefix\bin\* `
|
|
-DestinationPath brotli-${{matrix.triplet}}.zip
|
|
|
|
- name: Upload binaries to release
|
|
if: github.event_name == 'release'
|
|
uses: AButler/upload-release-assets@v2.0
|
|
with:
|
|
files: brotli-${{matrix.triplet}}.zip
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|