Skip to content

Commit 364cb51

Browse files
committed
Update appveyor.yml
1 parent 97fe0e7 commit 364cb51

1 file changed

Lines changed: 102 additions & 64 deletions

File tree

appveyor.yml

Lines changed: 102 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ skip_non_tags: false
2626
# - '.gitignore'
2727
# - 'LICENSE'
2828
# - 'README.md'
29+
# - 'VersionManifest.md'
2930

3031
#
3132
pull_requests:
@@ -36,21 +37,73 @@ pull_requests:
3637
#---------------------------------#
3738

3839
# Build worker image (VM template)
39-
image: Visual Studio 2017
40+
image: Visual Studio 2019
4041

4142
# scripts that are called at very beginning, before repo cloning
4243
init:
43-
- ps: >-
44+
- ps: |
45+
$env:Celeste_IsTagAndRelease = "false"
46+
$env:Celeste_IsDeploy = "false"
4447
if ($env:APPVEYOR_REPO_TAG -eq "true")
4548
{
46-
$env:Build_Version = "$($env:APPVEYOR_REPO_TAG_NAME.Replace('v', ''))";
47-
Update-AppveyorBuild -Version $env:Build_Version;
49+
$env:Celeste_IVersion = "$env:APPVEYOR_REPO_TAG_NAME"
50+
if ($env:CONFIGURATION -eq "Release")
51+
{
52+
if ($env:APPVEYOR_REPO_COMMIT_MESSAGE.Contains("[ci deploy]"))
53+
{
54+
$env:Celeste_IsDeploy = "true"
55+
$env:Celeste_IsTagAndRelease = "false"
56+
}
57+
else
58+
{
59+
$env:Celeste_IsDeploy = "false"
60+
$env:Celeste_IsTagAndRelease = "true"
61+
}
62+
}
63+
if ($env:APPVEYOR_REPO_TAG_NAME.StartsWith("v"))
64+
{
65+
$env:Celeste_Version = $env:APPVEYOR_REPO_TAG_NAME.Substring(1)
66+
}
67+
else
68+
{
69+
$env:Celeste_Version = "$env:APPVEYOR_REPO_TAG_NAME"
70+
}
71+
if ($env:APPVEYOR_REPO_TAG_NAME.Contains("-rc") -or $env:APPVEYOR_REPO_TAG_NAME.Contains("-beta") -or $env:APPVEYOR_REPO_TAG_NAME.Contains("-alpha"))
72+
{
73+
$env:Celeste_Version = $env:Celeste_Version.Replace("-rc", "")
74+
$env:Celeste_Version = $env:Celeste_Version.Replace("-beta", "")
75+
$env:Celeste_Version = $env:Celeste_Version.Replace("-alpha", "")
76+
$env:Celeste_PreRelease = "true"
77+
}
78+
else
79+
{
80+
$env:Celeste_PreRelease = "false"
81+
}
82+
if ((($env:Celeste_Version.Split('.')).Count - 1) -eq 0)
83+
{
84+
$env:Celeste_AVersion = "$env:Celeste_Version.0.0.0"
85+
}
86+
elseif ((($env:Celeste_Version.Split('.')).Count - 1) -eq 1)
87+
{
88+
$env:Celeste_AVersion = "$env:Celeste_Version.0.0"
89+
}
90+
elseif ((($env:Celeste_Version.Split('.')).Count - 1) -eq 2)
91+
{
92+
$env:Celeste_AVersion = "$env:Celeste_Version.0"
93+
}
94+
else
95+
{
96+
$env:Celeste_AVersion = "$env:Celeste_Version"
97+
}
4898
}
4999
else
50100
{
51-
$env:Build_Version = "$($env:APPVEYOR_BUILD_VERSION)";
101+
$env:Celeste_Version = "$env:APPVEYOR_BUILD_VERSION"
102+
$env:Celeste_AVersion = "$env:APPVEYOR_BUILD_VERSION"
103+
$env:Celeste_IVersion = "v$env:APPVEYOR_BUILD_VERSION"
104+
$env:Celeste_PreRelease = "false"
52105
}
53-
- cmd: git config --global core.autocrlf true
106+
git config --global core.autocrlf true
54107
55108
# clone directory
56109
clone_folder: c:\projects\ProjectCeleste.GameFiles.GameScanner
@@ -77,13 +130,10 @@ environment:
77130
secure: KQ7QIFa56u+YS86mjhAUnA==
78131
priv_key:
79132
secure: 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
80-
APPVEYOR_TOKEN:
81-
secure: jGj6ymLyuRVFC2DxQFlS8UmlTZbcCjjVVPFFxT4Awbs=
82133

83134
# build cache to preserve files/folders between builds
84135
cache:
85-
- packages -> **\ProjectCeleste.GameFiles.GameScanner.csproj # preserve packages directory in the root of build folder but will reset it if ProjectCeleste.GameFiles.GameScanner.csproj is modified
86-
- '%LocalAppData%\NuGet\Cache'
136+
- '%USERPROFILE%\.nuget\packages -> **\ProjectCeleste.GameFiles.GameScanner.csproj' # preserve packages directory but will reset it if ProjectCeleste.GameFiles.GameScanner.csproj is modified
87137

88138
# scripts that run after cloning repository
89139
install:
@@ -93,45 +143,34 @@ install:
93143
- ps: |
94144
if ($env:APPVEYOR_REPO_TAG -eq "true")
95145
{
96-
# Set Version number
97-
$env:Build_Version = "$($env:APPVEYOR_REPO_TAG_NAME.Replace('v', ''))"
98146
# Update VersionManifest
99147
$VersionManifestPath = Join-Path -Path $ENV:APPVEYOR_BUILD_FOLDER -ChildPath 'VersionManifest.md'
100-
Set-Content -NoNewline -Path $VersionManifestPath -Value $env:Build_Version
148+
Set-Content -NoNewline -Path $VersionManifestPath -Value $env:Celeste_AVersion
101149
# Update AppVeyor build
102-
Update-AppveyorBuild -Version $env:Build_Version
103-
# Update AppVeyor BuildNumber
104-
# $headers = @{
105-
# "Authorization" = "Bearer $env:APPVEYOR_TOKEN"
106-
# "Content-type" = "application/json"
107-
# "Accept" = "application/json"
108-
# }
109-
# $build = @{
110-
# nextBuildNumber = 1
111-
# }
112-
# $json = $build | ConvertTo-Json
113-
# Invoke-RestMethod -Method Put "https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/settings/build-number" -Body $json -Headers $headers
150+
Update-AppveyorBuild -Version "$env:Celeste_AVersion-$env:APPVEYOR_BUILD_NUMBER"
114151
}
115152
else
116153
{
117154
# Update AppVeyor Build Version
118155
$VersionManifestPath = Join-Path -Path $ENV:APPVEYOR_BUILD_FOLDER -ChildPath 'VersionManifest.md'
119156
$ManifestContent = Get-Content -Path $VersionManifestPath -Raw
120157
# Set Version number
121-
$env:Build_Version = "$ManifestContent.$env:APPVEYOR_BUILD_NUMBER"
158+
$env:Celeste_Version = "$ManifestContent"
159+
$env:Celeste_AVersion = "$ManifestContent"
160+
$env:Celeste_IVersion = "v$ManifestContent-$env:APPVEYOR_BUILD_NUMBER"
122161
# update AppVeyor build
123-
Update-AppveyorBuild -Version $env:Build_Version
162+
Update-AppveyorBuild -Version "$ManifestContent-$env:APPVEYOR_BUILD_NUMBER"
124163
}
125164
126165
# enable patching of AssemblyInfo.* files
127166
dotnet_csproj:
128167
patch: true
129168
file: '**\*.csproj'
130-
version: '$(Build_Version)'
131-
package_version: '$(Build_Version)'
132-
assembly_version: '$(Build_Version)'
133-
file_version: '$(Build_Version)'
134-
informational_version: '$(Build_Version)'
169+
version: '$(Celeste_AVersion)'
170+
package_version: '$(Celeste_AVersion)'
171+
assembly_version: '$(Celeste_AVersion)'
172+
file_version: '$(Celeste_AVersion)'
173+
informational_version: '$(Celeste_IVersion)'
135174

136175
#---------------------------------#
137176
# build configuration #
@@ -167,7 +206,6 @@ before_package:
167206

168207
# scripts to run after build
169208
after_build:
170-
171209

172210
# to run your custom scripts instead of automatic MSBuild
173211
build_script:
@@ -184,10 +222,10 @@ test: off
184222
#---------------------------------#
185223

186224
artifacts:
187-
- path: 'src\bin\Release'
225+
- path: 'src\bin\$(CONFIGURATION)'
188226
name: ProjectCeleste.GameFiles.GameScanner
189227
type: zip
190-
- path: 'src\bin\Release\ProjectCeleste.GameFiles.GameScanner.%Build_Version%.*nupkg'
228+
- path: 'src\bin\Release\ProjectCeleste.GameFiles.GameScanner.*.*nupkg'
191229
name: NuGet
192230

193231
#---------------------------------#
@@ -202,14 +240,14 @@ deploy:
202240
- provider: GitHub
203241
tag: $(APPVEYOR_REPO_TAG_NAME)
204242
description: '[View CHANGELOG.md](https://github.com/ProjectCeleste/ProjectCeleste.GameFiles.GameScanner/blob/master/CHANGELOG.md)'
205-
release: ProjectCeleste.GameFiles.GameScanner v$(Build_Version)
243+
release: ProjectCeleste.GameFiles.GameScanner $(Celeste_IVersion)
206244
auth_token: $(access_token)
207245
artifact: ProjectCeleste.GameFiles.GameScanner
208246
draft: false
209-
prerelease: false
247+
prerelease: $(Celeste_PreRelease)
210248
force_update: true
211249
on:
212-
appveyor_repo_tag: true
250+
Celeste_IsDeploy: true
213251

214252
# Deploy NuGet
215253
- provider: NuGet
@@ -220,45 +258,45 @@ deploy:
220258
symbol_server: # remove to push symbols to SymbolSource.org
221259
artifact: NuGet
222260
on:
223-
appveyor_repo_tag: true
261+
Celeste_IsDeploy: true
224262

225263
# scripts to run before deployment
226264
before_deploy:
227-
- ps: >-
228-
$fileContent = "-----BEGIN RSA PRIVATE KEY-----`n";
229-
$fileContent += $env:priv_key.Replace(' ', "`n");
230-
$fileContent += "`n-----END RSA PRIVATE KEY-----`n";
231-
Set-Content "$env:USERPROFILE\.ssh\id_rsa" "$($fileContent)";
232-
Set-Content "$env:USERPROFILE\.git-credentials" "https://$($env:access_token):x-oauth-basic@github.com`n";
233-
234-
- git config --global credential.helper store
235-
- git config --global user.email "%github_email%"
236-
- git config --global user.name "%github_user%"
237-
- git checkout -b Appveyor "%APPVEYOR_REPO_COMMIT%"
238-
- git add "src\ProjectCeleste.GameFiles.GameScanner.csproj"
239-
- git add "VersionManifest.md"
240-
- git commit -m "%APPVEYOR_REPO_TAG_NAME%"
241-
- git checkout "%APPVEYOR_REPO_BRANCH%"
242-
- git merge Appveyor
243-
- git branch -d Appveyor
244-
- git pull "origin" "%APPVEYOR_REPO_BRANCH%"
245-
- git push "origin" "%APPVEYOR_REPO_BRANCH%"
246265

247266
# scripts to run after deployment
248267
after_deploy:
249268

250-
# to run your custom scripts instead of provider deployments
251-
deploy_script:
252-
253-
# to disable deployment
254-
#deploy: off
255-
256269
#---------------------------------#
257270
# global handlers #
258271
#---------------------------------#
259272

260273
# on successful build
261274
on_success:
275+
- ps: |
276+
if ($env:Celeste_IsTagAndRelease -eq "true")
277+
{
278+
$env:GIT_REDIRECT_STDERR = '2>&1'
279+
$fileContent = "-----BEGIN RSA PRIVATE KEY-----`n"
280+
$fileContent += $env:priv_key.Replace(' ', "`n")
281+
$fileContent += "`n-----END RSA PRIVATE KEY-----`n"
282+
Set-Content "$env:USERPROFILE\.ssh\id_rsa" "$fileContent"
283+
Set-Content "$env:USERPROFILE\.git-credentials" "https://$($env:access_token):x-oauth-basic@github.com`n"
284+
git config --global credential.helper store
285+
git config --global user.email "$env:github_email"
286+
git config --global user.name "$env:github_user"
287+
git checkout -b Appveyor "$env:APPVEYOR_REPO_COMMIT"
288+
git add .
289+
git commit -m "$env:APPVEYOR_REPO_TAG_NAME [ci deploy]"
290+
git checkout "$env:APPVEYOR_REPO_BRANCH"
291+
git merge --squash Appveyor
292+
git add .
293+
git commit -m "$env:APPVEYOR_REPO_TAG_NAME [ci deploy]"
294+
git branch -d Appveyor
295+
git pull "origin" "$env:APPVEYOR_REPO_BRANCH"
296+
git push "origin" "$env:APPVEYOR_REPO_BRANCH"
297+
git tag -f "$env:APPVEYOR_REPO_TAG_NAME"
298+
git push --tags --force
299+
}
262300
263301
# on build failure
264302
on_failure:

0 commit comments

Comments
 (0)