aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorEugene Kliuchnikov <eustas.ru@gmail.com>2023-01-03 17:16:17 +0100
committerGitHub <noreply@github.com>2023-01-03 17:16:17 +0100
commita2cc451df2ec955e38ea9355c29be75461598e5e (patch)
tree415534cf2ba2b097aa095327c523602736d7fa08 /.github
parentc8df4b3049ff1283fc4525defbcd003188f88963 (diff)
downloadbrotli-a2cc451df2ec955e38ea9355c29be75461598e5e.zip
brotli-a2cc451df2ec955e38ea9355c29be75461598e5e.tar.gz
brotli-a2cc451df2ec955e38ea9355c29be75461598e5e.tar.bz2
Add win release assets (#994)
Fix #983
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/fuzz.yml7
-rw-r--r--.github/workflows/release.yaml118
2 files changed, 125 insertions, 0 deletions
diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml
index f0f5dcc..77188ab 100644
--- a/.github/workflows/fuzz.yml
+++ b/.github/workflows/fuzz.yml
@@ -1,3 +1,10 @@
+# Copyright 2020 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 / running oss-fuzz.
+
name: CIFuzz
on: [pull_request]
jobs:
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
new file mode 100644
index 0000000..4e04663
--- /dev/null
+++ b/.github/workflows/release.yaml
@@ -0,0 +1,118 @@
+# 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*.*.*
+ - winass
+ 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 }}