winamp/Src/external_dependencies/openmpt-trunk/.appveyor.yml
2024-09-24 14:54:57 +02:00

208 lines
9.2 KiB
YAML

branches:
only:
- master
skip_tags: true
skip_branch_with_pr: true
version: 1.30-appveyor{build}
matrix:
fast_finish: true
environment:
OPENMPT_APPVEYOR_API_TOKEN:
secure: bxGFLD4QFin6OMSHsO5tYiKkuifNPMEsZNHvc2wfMYk=
matrix:
- job_name: VS2019 Win10 x86
job_group: Builds
MPT_APPVEYOR_VS: vs2019
MPT_APPVEYOR_TARGET: win10
MPT_APPVEYOR_ARCH: x86
MPT_APPVEYOR_ARCH_CONFIG: Win32
- job_name: VS2019 Win10 amd64
job_group: Builds
MPT_APPVEYOR_VS: vs2019
MPT_APPVEYOR_TARGET: win10
MPT_APPVEYOR_ARCH: amd64
MPT_APPVEYOR_ARCH_CONFIG: x64
- job_name: VS2019 Win10 arm
job_group: Builds
MPT_APPVEYOR_VS: vs2019
MPT_APPVEYOR_TARGET: win10
MPT_APPVEYOR_ARCH: arm
MPT_APPVEYOR_ARCH_CONFIG: ARM
- job_name: VS2019 Win10 arm64
job_group: Builds
MPT_APPVEYOR_VS: vs2019
MPT_APPVEYOR_TARGET: win10
MPT_APPVEYOR_ARCH: arm64
MPT_APPVEYOR_ARCH_CONFIG: ARM64
- job_name: VS2019 Win7 x86
job_group: Builds
MPT_APPVEYOR_VS: vs2019
MPT_APPVEYOR_TARGET: win7
MPT_APPVEYOR_ARCH: x86
MPT_APPVEYOR_ARCH_CONFIG: Win32
- job_name: VS2019 Win7 amd64
job_group: Builds
MPT_APPVEYOR_VS: vs2019
MPT_APPVEYOR_TARGET: win7
MPT_APPVEYOR_ARCH: amd64
MPT_APPVEYOR_ARCH_CONFIG: x64
- job_name: Package
job_depends_on: Builds
image: Visual Studio 2019
clone_depth: 2500
cache:
- build\externals
install:
- build\download_externals.cmd auto
before_build:
- build\auto\appveyor_set_version.cmd
for:
-
matrix:
only:
- job_group: Builds
build_script:
- build\auto\build_openmpt_args.cmd %MPT_APPVEYOR_VS% %MPT_APPVEYOR_TARGET% %MPT_APPVEYOR_ARCH_CONFIG% Release 7z default
artifacts:
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\OpenMPT.exe'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\OpenMPT.pdb'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\openmpt-lame.dll'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\openmpt-lame.pdb'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\openmpt-mpg123.dll'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\openmpt-mpg123.pdb'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\openmpt-soundtouch.dll'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\openmpt-soundtouch.pdb'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\PluginBridge-$(MPT_APPVEYOR_ARCH).exe'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\PluginBridge-$(MPT_APPVEYOR_ARCH).pdb'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\PluginBridgeLegacy-$(MPT_APPVEYOR_ARCH).exe'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\PluginBridgeLegacy-$(MPT_APPVEYOR_ARCH).pdb'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\openmpt-wine-support.zip'
- path: 'bin\release\$(MPT_APPVEYOR_VS)-$(MPT_APPVEYOR_TARGET)-static\$(MPT_APPVEYOR_ARCH)\updatesigntool.exe'
-
matrix:
only:
- job_name: Package
before_build:
- ps: |
function Get-AppVeyorArtifacts
{
[CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'Low')]
param(
#The name of the account you wish to download artifacts from
[parameter(Mandatory = $true)]
[string]$Account,
#The name of the project you wish to download artifacts from
[parameter(Mandatory = $true)]
[string]$Project,
#Where to save the downloaded artifacts. Defaults to current directory.
[alias("DownloadDirectory")][string]$Path = '.',
[string]$Token,
#Filter to a specific branch or project directory. You can specify Branch as either branch name ("master") or build version ("0.1.29")
[string]$Branch,
#If you have multiple build jobs, specify which job you wish to retrieve the artifacts from
[string]$JobName,
#Download all files into a single directory, do not preserve any hierarchy that might exist in the artifacts
[switch]$Flat,
[string]$Proxy,
[switch]$ProxyUseDefaultCredentials,
#URL of Appveyor API. You normally shouldn't need to change this.
$apiUrl = 'https://ci.appveyor.com/api'
)
$headers = @{
'Content-type' = 'application/json'
}
if ($Token) {$headers.'Authorization' = "Bearer $token"}
# Prepare proxy args to splat to Invoke-RestMethod
$proxyArgs = @{}
if (-not [string]::IsNullOrEmpty($proxy)) {
$proxyArgs.Add('Proxy', $proxy)
}
if ($proxyUseDefaultCredentials.IsPresent) {
$proxyArgs.Add('ProxyUseDefaultCredentials', $proxyUseDefaultCredentials)
}
$errorActionPreference = 'Stop'
$projectURI = "$apiUrl/projects/$account/$project"
if ($Branch) {$projectURI = $projectURI + "/branch/$Branch"}
$projectObject = Invoke-RestMethod -Method Get -Uri $projectURI `
-Headers $headers @proxyArgs
if (-not $projectObject.build.jobs) {throw "No jobs found for this project or the project and/or account name was incorrectly specified"}
if (($projectObject.build.jobs.count -gt 1) -and -not $jobName) {
throw "Multiple Jobs found for the latest build. Please specify the -JobName paramter to select which job you want the artifacts for"
}
if ($JobName) {
$jobid = ($projectObject.build.jobs | Where-Object name -eq "$JobName" | Select-Object -first 1).jobid
if (-not $jobId) {throw "Unable to find a job named $JobName within the latest specified build. Did you spell it correctly?"}
} else {
$jobid = $projectObject.build.jobs[0].jobid
}
$artifacts = Invoke-RestMethod -Method Get -Uri "$apiUrl/buildjobs/$jobId/artifacts" `
-Headers $headers @proxyArgs
$artifacts `
| ? { $psCmdlet.ShouldProcess($_.fileName) } `
| % {
$type = $_.type
$localArtifactPath = $_.fileName -split '/' | % { [Uri]::UnescapeDataString($_) }
if ($flat.IsPresent) {
$localArtifactPath = ($localArtifactPath | select -Last 1)
} else {
$localArtifactPath = $localArtifactPath -join [IO.Path]::DirectorySeparatorChar
}
$localArtifactPath = Join-Path $path $localArtifactPath
$artifactUrl = "$apiUrl/buildjobs/$jobId/artifacts/$($_.fileName)"
Write-Verbose "Downloading $artifactUrl to $localArtifactPath"
$localArtifactPathParent = Split-Path -Path $localArtifactPath -Parent
New-Item -Path $localArtifactPathParent -ItemType Directory -Force
Invoke-RestMethod -Method Get -Uri $artifactUrl -OutFile $localArtifactPath -Headers $headers @proxyArgs
New-Object PSObject -Property @{
'Source' = $artifactUrl
'Type' = $type
'Target' = $localArtifactPath
}
}
}
Get-AppVeyorArtifacts OpenMPT openmpt -Token $env:OPENMPT_APPVEYOR_API_TOKEN -JobName 'VS2019 Win10 x86'
Get-AppVeyorArtifacts OpenMPT openmpt -Token $env:OPENMPT_APPVEYOR_API_TOKEN -JobName 'VS2019 Win10 amd64'
Get-AppVeyorArtifacts OpenMPT openmpt -Token $env:OPENMPT_APPVEYOR_API_TOKEN -JobName 'VS2019 Win10 arm'
Get-AppVeyorArtifacts OpenMPT openmpt -Token $env:OPENMPT_APPVEYOR_API_TOKEN -JobName 'VS2019 Win10 arm64'
Get-AppVeyorArtifacts OpenMPT openmpt -Token $env:OPENMPT_APPVEYOR_API_TOKEN -JobName 'VS2019 Win7 x86'
Get-AppVeyorArtifacts OpenMPT openmpt -Token $env:OPENMPT_APPVEYOR_API_TOKEN -JobName 'VS2019 Win7 amd64'
build_script:
- build\auto\build_openmpt_release_packages_multiarch.cmd auto
- build\auto\build_openmpt_update_information.cmd auto
- build\auto\package_openmpt_installer_multiarch_args.cmd vs2019 win10 Win32 Release 7z default
after_build:
- appveyor PushArtifact bin\openmpt-pkg.win-multi.tar
test: off