Skip to content

Add remaining properties needed to unlock beautiful dark theme support to the elevation profile canvas #4883

Add remaining properties needed to unlock beautiful dark theme support to the elevation profile canvas

Add remaining properties needed to unlock beautiful dark theme support to the elevation profile canvas #4883

Workflow file for this run

---
name: ๐ŸชŸ Windows
on:
push:
branches:
- master
- release-**
pull_request:
release:
types: ['published']
jobs:
build:
name: build (windows)
runs-on: windows-2022
steps:
- name: ๐Ÿฃ Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: ๐ŸŒพ Prepare vars
id: vars
shell: bash
run: |
./scripts/ci/env_gh.sh
echo "BUILD_TYPE=Release" >> $GITHUB_ENV
echo "CMAKE_BUILD_DIR=C:/builddir" >> $GITHUB_ENV
- name: ๐Ÿฉ Install CMake and Ninja
uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.29.0
- name: ๐Ÿงฝ Developer Command Prompt for Microsoft Visual C++
uses: ilammy/msvc-dev-cmd@v1
# with:
# See https://github.com/actions/runner-images/issues/9398
# toolset: 14.39
- name: ๐Ÿ”จ Prepare build env
shell: bash
run: |
# Hide terminal for release builds
if [[ -n "${{ env.CI_TAG }}" ]]; then
EXTRA_CMAKE_ARGS="${EXTRA_CMAKE_ARGS} -DCMAKE_WIN32_EXECUTABLE=ON"
fi
echo "EXTRA_CMAKE_ARGS=${EXTRA_CMAKE_ARGS}" >> $GITHUB_ENV
- name: ๐ŸŒฑ Install dependencies and generate project files
shell: bash
env:
WORKSPACE: ${{ github.workspace }}
run: |
# Convert paths to bash compatible ones. Thanks to whoever decided to use drive letters and backslashes.
CMAKE_BUILD_DIR=$( cygpath "${CMAKE_BUILD_DIR}" )
SOURCE_DIR=$( cygpath "${WORKSPACE}" )
source ./scripts/version_number.sh
source ./scripts/ci/generate-version-details.sh
cmake -S "${SOURCE_DIR}" \
-G Ninja \
-B "${CMAKE_BUILD_DIR}" \
-D CMAKE_C_COMPILER="C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/x64/bin/clang-cl.exe" \
-D CMAKE_CXX_COMPILER="C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/x64/bin/clang-cl.exe" \
-D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
-D VCPKG_TARGET_TRIPLET="x64-windows-static" \
-D VCPKG_HOST_TRIPLET="x64-windows-static" \
-D WITH_VCPKG=ON \
-D WITH_SPIX=ON \
-D WITH_NFC=OFF \
-D APP_VERSION="${APP_VERSION}" \
-D APP_VERSION_STR="${APP_VERSION_STR}" \
-D APP_PACKAGE_NAME="${APP_PACKAGE_NAME}" \
-D ENABLE_TESTS=OFF \
-D NUGET_USERNAME=opengisch \
-D NUGET_TOKEN=${{ secrets.GITHUB_TOKEN }} \
-D SENTRY_DSN=${{ secrets.SENTRY_DSN }} \
-D SENTRY_ENV="${APP_ENV}" \
-D CMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded\$<\$<CONFIG:Debug>:Debug>" \
-D PKG_CONFIG_EXECUTABLE=${CMAKE_BUILD_DIR}/vcpkg_installed/x64-windows-static/tools/pkgconf/pkgconf.exe \
-D WITH_BLUETOOTH=ON \
-D VCPKG_INSTALL_OPTIONS="--x-buildtrees-root=C:/src" \
${EXTRA_CMAKE_ARGS}
- name: ๐Ÿ“‘ Upload dep build logs
uses: actions/upload-artifact@v4
if: failure()
with:
name: build-logs-x64-windows-static
path: |
C:/src/**/*.log
- name: ๐ŸŒ‹ Build
run: |
cmake --build "${{ env.CMAKE_BUILD_DIR }}" --config ${{ env.BUILD_TYPE }}
- name: ๐Ÿงซ Test
shell: bash
env:
PROJ_LIB: ${{ env.CMAKE_BUILD_DIR }}/vcpkg_installed/x64-windows-static/share/proj
run: |
SOURCE_DIR=$( cygpath "${{ github.workspace }}" )
pip install -r "${SOURCE_DIR}/test/spix/requirements.txt"
cd "${{ env.CMAKE_BUILD_DIR }}"
ctest --output-on-failure -C ${{ env.BUILD_TYPE }}
- name: Package
shell: bash
run: |
cmake --build "${{ env.CMAKE_BUILD_DIR }}" --target bundle --config ${{ env.BUILD_TYPE }} -j1
ARTIFACT_PATHNAME=$(ls ${{ env.CMAKE_BUILD_DIR }}/QField-*-win64.* | head -n 1)
ARTIFACT_NAME=$(basename $ARTIFACT_PATHNAME)
echo "ARTIFACT_PATHNAME=${ARTIFACT_PATHNAME}" >> $GITHUB_ENV
echo "ARTIFACT_NAME=qfield-${{ env.CI_PACKAGE_FILE_SUFFIX }}-windows-x64.exe" >> $GITHUB_ENV
- name: ๐Ÿ“‘ Upload package logs
uses: actions/upload-artifact@v4
if: failure()
with:
name: package-logs-x64-windows-static
path: ${{ env.CMAKE_BUILD_DIR }}/_CPack_Packages/**/*.log
- name: ๐ŸŽญ Sign
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v') && env.ARTIFACT_NAME != null
uses: azure/trusted-signing-action@v0.3.16
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
endpoint: https://weu.codesigning.azure.net/
code-signing-account-name: OPENGISch
certificate-profile-name: OPENGISch
files-folder: ${{ env.CMAKE_BUILD_DIR }}
files-folder-filter: exe,msi
file-digest: SHA256
timestamp-rfc3161: http://timestamp.acs.microsoft.com
timestamp-digest: SHA256
- name: ๐Ÿ“ฆ Upload package
if: ${{ env.ARTIFACT_NAME != null }}
uses: actions/upload-artifact@v4
with:
name: "QField-dev-x64-windows-static-${{ env.BUILD_TYPE }}"
path: ${{ env.ARTIFACT_PATHNAME }}
- name: ๐Ÿ“Š Upload test report
uses: actions/upload-artifact@v4
with:
name: "test-report-x64-windows-static-${{ env.BUILD_TYPE }}"
path: "${{ env.CMAKE_BUILD_DIR }}/report"
- name: ๐Ÿš€ Upload release asset
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v') && env.ARTIFACT_NAME != null
uses: shogo82148/actions-upload-release-asset@v1
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ${{ env.ARTIFACT_PATHNAME }}
asset_name: ${{ env.ARTIFACT_NAME }}
overwrite: true
- name: ๐Ÿ’Ž Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2' # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: ๐Ÿ“ฎ Upload debug symbols
if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/v') && env.ARTIFACT_NAME != null
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG_SLUG: opengisch
SENTRY_PROJECT_SLUG: qfield
run: |
bundle exec fastlane run sentry_upload_dif path:${{ env.CMAKE_BUILD_DIR }}