mirror of
https://github.com/google/brotli.git
synced 2024-11-13 23:50:08 +00:00
2b3334d559
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](a8a3f3ad30...c7d193f32e
)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
192 lines
5.0 KiB
YAML
192 lines
5.0 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 ]
|
|
pull_request:
|
|
types: [opened, reopened, labeled, synchronize]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
jobs:
|
|
windows_build:
|
|
name: Windows Build (vcpkg / ${{ matrix.triplet }})
|
|
runs-on: [windows-latest]
|
|
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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
|
with:
|
|
submodules: false
|
|
fetch-depth: 1
|
|
|
|
- uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 # v3.3.2
|
|
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@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0
|
|
with:
|
|
name: brotli-${{matrix.triplet}}
|
|
path: |
|
|
prefix/bin/*
|
|
|
|
- name: Package release zip
|
|
shell: 'powershell'
|
|
run: |
|
|
Compress-Archive -Path prefix\bin\* `
|
|
-DestinationPath brotli-${{matrix.triplet}}.zip
|
|
|
|
- name: Upload binaries to release
|
|
if: github.event_name == 'release'
|
|
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v0.1.15
|
|
with:
|
|
files: brotli-${{matrix.triplet}}.zip
|
|
|
|
testdata_upload:
|
|
name: Upload testdata
|
|
runs-on: 'ubuntu-latest'
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
steps:
|
|
|
|
- name: Checkout the source
|
|
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
|
with:
|
|
submodules: false
|
|
fetch-depth: 1
|
|
|
|
- name: Compress testdata
|
|
run: |
|
|
tar cvfJ testdata.txz tests/testdata
|
|
|
|
- name: Upload archive to release
|
|
if: github.event_name == 'release'
|
|
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v0.1.15
|
|
with:
|
|
files: testdata.txz
|
|
|
|
archive_build:
|
|
needs: testdata_upload
|
|
name: Build and test from archive
|
|
runs-on: 'ubuntu-latest'
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
steps:
|
|
|
|
- name: Checkout the source
|
|
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
|
with:
|
|
submodules: false
|
|
fetch-depth: 1
|
|
|
|
- name: Archive
|
|
run: |
|
|
git archive HEAD -o archive.tgz
|
|
|
|
- name: Pick tag
|
|
run: |
|
|
echo "BROTLI_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
|
|
|
|
- name: Extract
|
|
run: |
|
|
mkdir archive
|
|
cd archive
|
|
tar xvzf ../archive.tgz
|
|
|
|
- name: Download testdata
|
|
run: |
|
|
cd archive
|
|
scripts/download_testdata.sh
|
|
|
|
- name: Configure and Build
|
|
run: |
|
|
cd archive
|
|
cmake -B out .
|
|
cmake --build out
|
|
|
|
- name: Test
|
|
run: |
|
|
cd archive
|
|
cd out
|
|
ctest
|