Add Sampling Length to Experimental panel (#1147) (#1812) #3213
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: Windows Build | |
on: [push, pull_request] | |
env: | |
BUILD_TYPE: Release | |
MSVC_VERSION: 2019 | |
QT_VERSION: 5.15.2 | |
PYTHON_VERSION: 3.7 | |
VCPKG_VERSION: 2023.11.20 | |
VCPKG_INSTALL_OPTIONS: --binarysource=clear | |
VCPKG_BUILD_TYPE: release | |
VCPKG_PACKAGES: freetype;harfbuzz | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build: | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
# We need to fetch more than one commit to get the correct build name | |
fetch-depth: 100 | |
submodules: 'recursive' | |
- name: Print git log | |
run: git log | |
# In case of a push event, the commit we care about is simply HEAD. | |
# The current branch name can be found by parsing GITHUB_REF, for example, | |
# if we are on the master branch, then GITHUB_REF = refs/heads/master. | |
- name: Get commit branch and commit message | |
if: github.event_name == 'push' | |
run: | | |
echo "COMMIT_BRANCH=$(echo ${GITHUB_REF##*/})" >> $GITHUB_ENV | |
echo "COMMIT_MESSAGE<<EOF" >> $GITHUB_ENV | |
echo "$(git log --format=%B -n 1 HEAD)" >> $GITHUB_ENV | |
echo "EOF" >> $GITHUB_ENV | |
# In case of a pull_request event, the commit we care about is HEAD^2, that | |
# is, the second parent of the pull request merge commit. | |
# The current branch name is directly given by GITHUB_HEAD_REF | |
- name: Get commit branch and commit message | |
if: github.event_name == 'pull_request' | |
run: | | |
echo "COMMIT_BRANCH=$GITHUB_HEAD_REF" >> $GITHUB_ENV | |
echo "COMMIT_MESSAGE<<EOF" >> $GITHUB_ENV | |
echo "$(git log --format=%B -n 1 HEAD^2)" >> $GITHUB_ENV | |
echo "EOF" >> $GITHUB_ENV | |
# https://docs.github.com/en/free-pro-team@latest/actions/reference/environment-variables | |
- name: Print useful environment variables | |
if: | |
run: | | |
echo "GITHUB_WORKFLOW: $GITHUB_WORKFLOW" | |
echo "GITHUB_RUN_ID: $GITHUB_RUN_ID" | |
echo "GITHUB_RUN_NUMBER: $GITHUB_RUN_NUMBER" | |
echo "GITHUB_ACTION: $GITHUB_ACTION" | |
echo "GITHUB_ACTIONS: $GITHUB_ACTIONS" | |
echo "GITHUB_ACTOR: $GITHUB_ACTOR" | |
echo "GITHUB_REPOSITORY: $GITHUB_REPOSITORY" | |
echo "GITHUB_EVENT_NAME: $GITHUB_EVENT_NAME" | |
echo "GITHUB_EVENT_PATH: $GITHUB_EVENT_PATH" | |
echo "GITHUB_WORKSPACE: $GITHUB_WORKSPACE" | |
echo "GITHUB_SHA: $GITHUB_SHA" | |
echo "GITHUB_REF: $GITHUB_REF" | |
echo "GITHUB_HEAD_REF: $GITHUB_HEAD_REF" | |
echo "GITHUB_BASE_REF: $GITHUB_BASE_REF" | |
echo "GITHUB_SERVER_URL: $GITHUB_SERVER_URL" | |
echo "GITHUB_API_URL: $GITHUB_API_URL" | |
echo "GITHUB_GRAPHQL_URL: $GITHUB_GRAPHQL_URL" | |
echo "COMMIT_BRANCH: $COMMIT_BRANCH" | |
echo "COMMIT_MESSAGE: $COMMIT_MESSAGE" | |
echo "WIX: $WIX" | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{env.PYTHON_VERSION}} | |
architecture: 'x64' | |
- name: Install Qt | |
working-directory: ${{github.workspace}}/.. | |
shell: pwsh | |
run: | | |
$url = "https://vgcci.blob.core.windows.net/vgc-ci" | |
$dirname = "qt-${env:QT_VERSION}-msvc${env:MSVC_VERSION}_64" | |
$filename = "$dirname.zip" | |
C:/msys64/usr/bin/wget.exe --progress=dot:giga "$url/$filename" | |
echo "Unzipping..." | |
unzip -q $filename -d . | |
echo "Done." | |
echo "Qt5Location=$pwd/$dirname" >> ${env:GITHUB_ENV} | |
- name: Configure vckpg | |
working-directory: ${{github.workspace}} | |
run: | | |
PARENT="${{github.workspace}}" | |
echo "VCPKG_ROOT_PARENT=$PARENT" >> $GITHUB_ENV | |
echo "VCPKG_ROOT=$PARENT/vcpkg" >> $GITHUB_ENV | |
echo "VCPKG_TOOLCHAIN_FILE=$PARENT/vcpkg/scripts/buildsystems/vcpkg.cmake" >> $GITHUB_ENV | |
echo "VCPKG_OVERLAY_TRIPLETS=$PARENT/vcpkg/custom-triplets" >> $GITHUB_ENV | |
echo "VCPKG_DEFAULT_TRIPLET=x64-windows-rel" >> $GITHUB_ENV | |
- name: Cache vcpkg | |
id: cache-vcpkg | |
uses: actions/cache@v3 | |
with: | |
path: ${{env.VCPKG_ROOT}} | |
key: vcpkg=${{env.VCPKG_VERSION}} triplet=${{env.VCPKG_DEFAULT_TRIPLET}} msvc=${{env.MSVC_VERSION}} packages=${{env.VCPKG_PACKAGES}} | |
# Note: This must be done in a `cmd` shell to properly execute the bootstrap-vcpkg.bat script | |
- if: ${{ steps.cache-vcpkg.outputs.cache-hit != 'true' }} | |
name: Install vcpkg | |
shell: cmd | |
working-directory: ${{env.VCPKG_ROOT_PARENT}} | |
run: | | |
git clone --depth=1 --branch %VCPKG_VERSION% https://github.com/microsoft/vcpkg.git | |
cd vcpkg | |
.\bootstrap-vcpkg.bat | |
- if: ${{ steps.cache-vcpkg.outputs.cache-hit != 'true' }} | |
name: Install vcpkg packages | |
working-directory: ${{env.VCPKG_ROOT}} | |
run: | | |
# Delete manifest file, otherwise, we cannot manually install packages | |
rm "${{github.workspace}}/vcpkg.json" | |
# Create custom triplet that only compile binaries with the given VCPKG_BUILD_TYPE | |
mkdir "$VCPKG_OVERLAY_TRIPLETS" | |
TRIPLET_FILE="$VCPKG_OVERLAY_TRIPLETS/$VCPKG_DEFAULT_TRIPLET.cmake" | |
cp triplets/x64-windows.cmake "$TRIPLET_FILE" | |
echo "set(VCPKG_BUILD_TYPE $VCPKG_BUILD_TYPE)" >> "$TRIPLET_FILE" | |
# Install packages | |
# Note: "IFS" = Input Field Separators. Makes it possible to interpret ';' as argument separator. | |
# We surround the command by parentheses so that IFS is only redefined in a subshell. | |
(IFS=';'; ./vcpkg.exe \ | |
--vcpkg-root="$VCPKG_ROOT" \ | |
--overlay-triplets="$VCPKG_OVERLAY_TRIPLETS" \ | |
--triplet="$VCPKG_DEFAULT_TRIPLET" \ | |
$VCPKG_INSTALL_OPTIONS \ | |
install $VCPKG_PACKAGES) | |
- name: Setup Developer Command Prompt for VS | |
uses: ilammy/msvc-dev-cmd@v1 | |
# For documentation on what vcpkg options can be given to CMake, see: | |
# https://vcpkg.io/en/docs/users/buildsystems/cmake-integration.html | |
# | |
# Examples: | |
# - -DVCPKG_INSTALL_OPTIONS="--debug;--binarysource=clear" | |
# - -DVCPKG_INSTALLED_DIR="$VCPKG_ROOT/installed" | |
# - -DVCPKG_MANIFEST_MODE=OFF | |
# | |
- name: Configure | |
working-directory: ${{github.workspace}} | |
run: | | |
mkdir build | |
cd build | |
cmake --version | |
cmake .. \ | |
-G Ninja \ | |
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \ | |
-DCMAKE_TOOLCHAIN_FILE="$VCPKG_TOOLCHAIN_FILE" \ | |
-DVCPKG_TARGET_TRIPLET="$VCPKG_DEFAULT_TRIPLET" \ | |
-DVCPKG_MANIFEST_MODE=OFF \ | |
-DVGC_COMMIT_BRANCH="$COMMIT_BRANCH" \ | |
-DPython_ROOT_DIR="$pythonLocation" \ | |
-DQt5_DIR="$Qt5Location/lib/cmake/Qt5" \ | |
-DWiX="$WIX" \ | |
-DVGC_PEDANTIC=ON \ | |
-DVGC_WERROR=ON | |
- name: Build | |
working-directory: ${{github.workspace}}/build | |
run: cmake --build . | |
- name: Test | |
working-directory: ${{github.workspace}}/build | |
run: cmake --build . --target check | |
- name: Deploy | |
working-directory: ${{github.workspace}}/build | |
env: | |
VGC_GITHUB_KEY: ${{secrets.VGC_GITHUB_KEY}} | |
AZURE_EV_KEY_VAULT_URI: ${{secrets.AZURE_EV_KEY_VAULT_URI}} | |
AZURE_EV_CLIENT_ID: ${{secrets.AZURE_EV_CLIENT_ID}} | |
AZURE_EV_TENANT_ID: ${{secrets.AZURE_EV_TENANT_ID}} | |
AZURE_EV_CLIENT_SECRET: ${{secrets.AZURE_EV_CLIENT_SECRET}} | |
AZURE_EV_CERT_NAME: ${{secrets.AZURE_EV_CERT_NAME}} | |
run: | | |
[ ! -z "$AZURE_EV_KEY_VAULT_URI" ] && dotnet tool install --global AzureSignTool --version 4.0.1 | |
cmake --build . --target deploy |