Skip to content

Compile release binaries on the self-hosted runner in Russia #140

Compile release binaries on the self-hosted runner in Russia

Compile release binaries on the self-hosted runner in Russia #140

Workflow file for this run

name: CI_build
on: [push, pull_request]
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build and tests (${{ matrix.build_configuration }}, ${{ matrix.build_platform }})
runs-on: windows-2022
timeout-minutes: 30
strategy:
fail-fast: false
max-parallel: 6
matrix:
build_configuration: [Release, Debug]
build_platform: [x64, Win32, ARM64]
steps:
- name: Checkout repo
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3
- name: Ensure ARM64 C++ build tools
if: matrix.build_platform == 'ARM64'
shell: pwsh
run: .\scripts\Ensure-VsArm64Tools.ps1
- name: MSBuild of plugin dll
working-directory: vs.proj\
run: msbuild MarkdownTableEditor.vcxproj /m /p:configuration="${{ matrix.build_configuration }}" /p:platform="${{ matrix.build_platform }}"
- name: Core coverage
if: matrix.build_platform == 'x64' && matrix.build_configuration == 'Debug'
run: msbuild Package.proj /m /t:Coverage /p:Configuration=Debug /p:Platform=x64
- name: Core performance benchmarks
if: matrix.build_platform == 'x64' && matrix.build_configuration == 'Release'
run: msbuild Package.proj /m /t:CorePerformance /p:Configuration=Release /p:Platform=x64
- name: Compatibility script safety tests
if: matrix.build_platform == 'x64' && matrix.build_configuration == 'Debug'
shell: pwsh
run: msbuild Package.proj /m /t:RunCompatibilityScriptSafetyTests
- name: Upload coverage to Codecov
if: matrix.build_platform == 'x64' && matrix.build_configuration == 'Debug'
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7
with:
files: build/reports/coverage/coverage.cobertura.xml
disable_search: true
flags: cpp-core
name: notepad-markdown-table-editor
fail_ci_if_error: false
- name: Archive artifacts for x64
if: matrix.build_platform == 'x64' && matrix.build_configuration == 'Release'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: plugin_dll_x64
path: bin64\MarkdownTableEditor.dll
if-no-files-found: error
retention-days: 14
- name: Archive artifacts for Win32
if: matrix.build_platform == 'Win32' && matrix.build_configuration == 'Release'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: plugin_dll_x86
path: bin\MarkdownTableEditor.dll
if-no-files-found: error
retention-days: 14
- name: Archive artifacts for ARM64
if: matrix.build_platform == 'ARM64' && matrix.build_configuration == 'Release'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: plugin_dll_arm64
path: arm64\MarkdownTableEditor.dll
if-no-files-found: error
retention-days: 14
npp-ui-smoke:
name: Tests / Notepad++ compatibility smoke
runs-on: windows-2022
timeout-minutes: 20
steps:
- name: Checkout repo
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3
- name: Notepad++ compatibility smoke
shell: pwsh
run: msbuild Package.proj "/t:NppCompatibilitySmoke;NppLatestSmoke"