forked from chummer5a/chummer5a
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathappveyor.yml
113 lines (103 loc) · 3.66 KB
/
appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
version: "5.202.{build}"
branches:
only:
- master
skip_tags: true
image: Visual Studio 2017
configuration: Release
platform: x86
assembly_info:
patch: true
file: '**\AssemblyInfo.*'
assembly_version: '{version}'
assembly_file_version: '{version}'
assembly_informational_version: '{version}'
hosts:
api.nuget.org: 93.184.221.200
environment:
SolutionDir: C:\projects\chummer\
matrix:
- project_name: Chummer
api_token: 'secure: Ez1QcWiKJJWMAO+xXkQglJNI4OnWM5/JMjXgy6gwJH5IuUX4ttzrpthVYNjHWS12'
init:
- ps: |
$headers = @{
"Authorization" = "Bearer $token"
"Content-type" = "application/json"
}
$apiURL = "https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG"
$history = Invoke-RestMethod -Uri "$apiURL/history?recordsNumber=2" -Headers $headers -Method Get
if ($history.builds.Count -eq 2)
{
$CurrentCommitID = $history.builds[0].commitId
$PreviousCommitID = $history.builds[1].commitId
Write-host "Current Commit ID: $CurrentCommitID"
Write-host "Previous Commit ID: $PreviousCommitID"
if (($CurrentCommitID -eq $PreviousCommitID) -and $env:APPVEYOR_SCHEDULED_BUILD -eq $true)
{
Write-host "Current Commit ID is the same as previous, exiting build."
Exit-AppveyorBuild
}
}
install:
- ps: |
$token = $env:api_token
$accountName = 'chummer5a'
$projectSlug = 'chummer'
$headers = @{
"Authorization" = "Bearer $token"
"Content-type" = "application/json"
}
Set-AppveyorBuildVariable -Name OldMinorVersion -Value $($env:APPVEYOR_BUILD_VERSION).Split('.')[1]
Write-Host "Environment Variable: $env:OldMinorVersion"
$Assemblyfile = "C:\projects\chummer\Chummer\Properties\AssemblyInfo.cs"
$regex = new-object System.Text.RegularExpressions.Regex ('(AssemblyVersion(Attribute)?\s*\(\s*\")(.*)(\"\s*\))',
[System.Text.RegularExpressions.RegexOptions]::MultiLine)
$content = [IO.File]::ReadAllText($assemblyFile)
$version = $null
$match = $regex.Match($content)
if($match.Success) {
$version = $match.groups[3].value
}
$Major = $version.Split('.')[0]
$Minor = $version.Split('.')[1]
If ($Minor -ne $($env:OldMinorVersion)) {
Write-Host "Current Minor: $Minor"
Write-Host "Old Minor: $($env:OldMinorVersion))"
Write-Host "Resetting build version to 1, assuming that a new .0 release has been issued already."
$apiUrl = 'https://ci.appveyor.com/api/projects/$accountName/$projectSlug'
$BuildNumber = '{ nextBuildNumber: 2; }'
$Format = '{ versionFormat: $Major.$Minor.1; }'
# get project with last build details
Invoke-RestMethod -Method Put -Uri "$apiUrlsettings/build-number" -Headers $headers -Body $BuildNumber
Invoke-RestMethod -Method Put -Uri "$apiUrl/settings" -Headers $headers -Body $BuildNumber
Update-AppveyorBuild -Version "$Major.$Minor.1"
}
else
{
Update-AppveyorBuild -Version "$Major.$Minor.$env:appveyor_build_number"
}
nuget:
account_feed: true
project_feed: true
disable_publish_on_pr: true
before_build:
- ps:
nuget restore
& ${env:CommonProgramFiles(x86)}'\Microsoft Shared\TextTemplating\14.0\TextTransform.exe' 'C:\projects\chummer\Chummer\Properties\contributors.tt'
build:
project: Chummer.sln
verbosity: normal
after_build:
- ps: 7z a Chummer.Nightly.zip C:\projects\chummer\Chummer\bin\release\* -r
artifacts:
- path: Chummer.Nightly.zip
name: Chummer
deploy:
- provider: GitHub
tag: Nightly-v$(appveyor_build_version)
auth_token:
secure: xrNlPolUlOE6KAfl/ZDdT8kdVxlzMZXfvafmN92gRYHGh6b2XcwXNi8K1+f0LO6m
artifact: Chummer
draft: false
prerelease: true