210 lines
8.4 KiB
YAML
210 lines
8.4 KiB
YAML
version: 8.4.{build}
|
|
image: Visual Studio 2022
|
|
|
|
#skip_commits:
|
|
# files:
|
|
# - PowerEditor/bin/*/*.xml
|
|
# - PowerEditor/installer/*/*.xml
|
|
|
|
environment:
|
|
matrix:
|
|
- compiler: MSC
|
|
platform: Win32
|
|
|
|
- compiler: MSC
|
|
platform: x64
|
|
|
|
- compiler: MSC
|
|
platform: arm64
|
|
|
|
- compiler: GCC
|
|
platform: i686
|
|
|
|
- compiler: GCC
|
|
platform: x86_64
|
|
|
|
configuration:
|
|
- Release
|
|
- Debug
|
|
|
|
before_build:
|
|
- ps: |
|
|
Write-Output "Build parameters:"
|
|
Write-Output "Compiler : $env:compiler"
|
|
Write-Output "Platform : $env:platform"
|
|
Write-Output "Configuration : $env:configuration"
|
|
Write-Output ""
|
|
# XML validation mode
|
|
$allowMaster = $true
|
|
if ($allowMaster -or $env:APPVEYOR_PULL_REQUEST_NUMBER) {
|
|
$files_nowork = "md|txt|log"
|
|
$files_modified = @(git diff --name-only HEAD~1)
|
|
$files_notmached = @($files_modified | Where-Object {$_ -notmatch "\.(xml|$files_nowork)$"})
|
|
if (($files_modified.length -gt 0 -and $files_notmached.length -eq 0) -or $env:APPVEYOR_REPO_COMMIT_MESSAGE -match "\[force (xml|nowork)\]") {
|
|
if (@($files_modified | Where-Object {$_ -notmatch "\.($files_nowork)$"}).length -eq 0 -or $env:APPVEYOR_REPO_COMMIT_MESSAGE -match "\[force nowork\]") {
|
|
Write-Output "Changed files on this commit don't require any additional tasks.`n"
|
|
Exit-AppVeyorBuild
|
|
}
|
|
else {
|
|
Write-Output "XML validation mode`n"
|
|
if ("$env:platform/$env:configuration" -eq "Win32/Debug") {
|
|
if (@($files_modified | Where-Object {$_ -match "/functionList/"}).length -eq 0) {
|
|
$env:Path = "C:\Python310;C:\Python310\Scripts;" + $env:Path
|
|
python -m pip install requests rfc3987 pywin32 lxml
|
|
python PowerEditor\Test\xmlValidator\validator_xml.py
|
|
if ($LastExitCode -eq 0) {
|
|
Write-Output "`nAll XML files are valid.`n"
|
|
Exit-AppVeyorBuild
|
|
}
|
|
else {
|
|
Write-Output "`nSome XML files are invalid.`n"
|
|
$host.SetShouldExit($LastExitCode)
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
Write-Output "In XML validation mode only Win32/Debug performs the proper tasks.`n"
|
|
Exit-AppVeyorBuild
|
|
}
|
|
}
|
|
}
|
|
elseif ($env:APPVEYOR_REPO_COMMIT_MESSAGE -match "\[xml\]" -and $env:APPVEYOR_REPO_COMMIT_MESSAGE -notmatch "\[force compile\]") {
|
|
throw "Changed files on this commit require full build."
|
|
}
|
|
}
|
|
|
|
for:
|
|
|
|
- matrix:
|
|
only:
|
|
- compiler: MSC
|
|
platform: Win32
|
|
configuration: Release
|
|
skip_commits:
|
|
message: /\[xml\]/
|
|
build:
|
|
parallel: true
|
|
project: PowerEditor\visual.net\notepadPlus.sln
|
|
after_build:
|
|
# artifacts
|
|
- ps: |
|
|
$nppFileName = "Notepad++.$env:platform.$env:configuration.exe"
|
|
Push-AppveyorArtifact "PowerEditor\bin\Notepad++.exe" -FileName "$nppFileName"
|
|
|
|
- matrix:
|
|
only:
|
|
- compiler: MSC
|
|
platform: Win32
|
|
configuration: Debug
|
|
build:
|
|
parallel: true
|
|
project: PowerEditor\visual.net\notepadPlus.sln
|
|
after_build:
|
|
# artifacts
|
|
- ps: |
|
|
$nppFileName = "Notepad++.$env:platform.$env:configuration.exe"
|
|
Push-AppveyorArtifact "PowerEditor\visual.net\Debug\Notepad++.exe" -FileName "$nppFileName"
|
|
# xml files syntax checks
|
|
- set PATH=C:\Python310;C:\Python310\Scripts;%PATH%
|
|
- python -m pip install requests rfc3987 pywin32 lxml
|
|
- python PowerEditor\Test\xmlValidator\validator_xml.py
|
|
# tests
|
|
- ps: |
|
|
Copy-Item "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\visual.net\Debug\Notepad++.exe" -Destination "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\bin"
|
|
Copy-Item "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\src\langs.model.xml" -Destination "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\bin"
|
|
Copy-Item "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\src\stylers.model.xml" -Destination "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\bin"
|
|
Copy-Item "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\src\shortcuts.xml" -Destination "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\bin"
|
|
Copy-Item "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\src\contextMenu.xml" -Destination "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\bin"
|
|
Copy-Item "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\installer\functionList" -Destination "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\bin" -Recurse
|
|
|
|
Copy-Item "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\installer\filesForTesting\regexGlobalTest.xml" -Destination "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\bin\functionList"
|
|
Copy-Item "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\installer\filesForTesting\overrideMap.xml" -Destination "$env:APPVEYOR_BUILD_FOLDER\PowerEditor\bin\functionList"
|
|
|
|
cd .\PowerEditor\Test\FunctionList\
|
|
.\unitTestLauncher.ps1
|
|
if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }
|
|
|
|
cd ..\UrlDetection
|
|
.\verifyUrlDetection.ps1
|
|
|
|
cd "$env:APPVEYOR_BUILD_FOLDER"
|
|
|
|
- matrix:
|
|
only:
|
|
- compiler: MSC
|
|
platform: x64
|
|
skip_commits:
|
|
message: /\[xml\]/
|
|
build:
|
|
parallel: true
|
|
project: PowerEditor\visual.net\notepadPlus.sln
|
|
after_build:
|
|
# artifacts
|
|
- ps: |
|
|
$nppFileName = "Notepad++.$env:platform.$env:configuration.exe"
|
|
if ("$env:platform/$env:configuration" -eq "x64/Release") {
|
|
Push-AppveyorArtifact "PowerEditor\bin64\Notepad++.exe" -FileName "$nppFileName"
|
|
}
|
|
if ("$env:platform/$env:configuration" -eq "x64/Debug") {
|
|
Push-AppveyorArtifact "PowerEditor\visual.net\x64\Debug\Notepad++.exe" -FileName "$nppFileName"
|
|
}
|
|
|
|
- matrix:
|
|
only:
|
|
- compiler: MSC
|
|
platform: arm64
|
|
skip_commits:
|
|
message: /\[xml\]/
|
|
build:
|
|
parallel: true
|
|
project: PowerEditor\visual.net\notepadPlus.sln
|
|
after_build:
|
|
# artifacts
|
|
- ps: |
|
|
$nppFileName = "Notepad++.$env:platform.$env:configuration.exe"
|
|
if ("$env:platform/$env:configuration" -eq "arm64/Release") {
|
|
Push-AppveyorArtifact "PowerEditor\binarm64\Notepad++.exe" -FileName "$nppFileName"
|
|
}
|
|
if ("$env:platform/$env:configuration" -eq "arm64/Debug") {
|
|
Push-AppveyorArtifact "PowerEditor\visual.net\arm64\Debug\Notepad++.exe" -FileName "$nppFileName"
|
|
}
|
|
|
|
- matrix:
|
|
only:
|
|
- compiler: GCC
|
|
skip_commits:
|
|
message: /\[xml\]/
|
|
build_script:
|
|
- set PATH=C:\msys64\usr\bin;%PATH%
|
|
- if "%platform%" EQU "i686" set MSYSTEM=MINGW32 && set PATH=C:\msys64\mingw32\bin;%PATH%
|
|
- if "%platform%" EQU "x86_64" set MSYSTEM=MINGW64 && set PATH=C:\msys64\mingw64\bin;%PATH%
|
|
- if "%configuration%" EQU "Debug" set DEBUG=1
|
|
# uncomment lines below to update packages to use latest gcc
|
|
#- bash -lc "pacman --noconfirm -Syuu"
|
|
#- bash -lc "pacman --noconfirm -Syuu"
|
|
#- if "%platform%" EQU "i686" bash -lc "pacman --noconfirm -S mingw-w64-i686-gcc mingw-w64-i686-make"
|
|
#- if "%platform%" EQU "x86_64" bash -lc "pacman --noconfirm -S mingw-w64-x86_64-gcc mingw-w64-x86_64-make"
|
|
- ps: |
|
|
Write-Output "Tools version:"
|
|
Write-Output (((gcc --version) | select-object -first 1) + " " + (gcc -dumpmachine))
|
|
Write-Output (make --version) | select-object -first 1
|
|
Write-Output (sh --version) | select-object -first 1
|
|
Write-Output ""
|
|
- make -f PowerEditor\gcc\makefile
|
|
after_build:
|
|
# artifacts
|
|
- ps: |
|
|
$nppFileName = "Notepad++.$env:compiler.$env:platform.$env:configuration.exe"
|
|
if ("$env:platform/$env:configuration" -eq "i686/Release") {
|
|
Push-AppveyorArtifact "bin.i686\notepad++.exe" -FileName "$nppFileName"
|
|
}
|
|
if ("$env:platform/$env:configuration" -eq "i686/Debug") {
|
|
Push-AppveyorArtifact "bin.i686-debug\notepad++.exe" -FileName "$nppFileName"
|
|
}
|
|
if ("$env:platform/$env:configuration" -eq "x86_64/Release") {
|
|
Push-AppveyorArtifact "bin.x86_64\notepad++.exe" -FileName "$nppFileName"
|
|
}
|
|
if ("$env:platform/$env:configuration" -eq "x86_64/Debug") {
|
|
Push-AppveyorArtifact "bin.x86_64-debug\notepad++.exe" -FileName "$nppFileName"
|
|
}
|