|
|
@@ -1,187 +0,0 @@ |
|
|
|
|
|
|
|
# Notes:
|
|
|
|
# - Minimal appveyor.yml file is an empty file. All sections are optional.
|
|
|
|
# - Indent each level of configuration with 2 spaces. Do not use tabs!
|
|
|
|
# - All section names are case-sensitive.
|
|
|
|
# - Section names should be unique on each level.
|
|
|
|
|
|
|
|
#---------------------------------#
|
|
|
|
# general configuration #
|
|
|
|
#---------------------------------#
|
|
|
|
|
|
|
|
# version format
|
|
|
|
# Build version format is taken from UI if it is not set
|
|
|
|
version: 4.3.2.{build}
|
|
|
|
|
|
|
|
# # branches to build
|
|
|
|
# branches:
|
|
|
|
# # whitelist
|
|
|
|
# only:
|
|
|
|
# - master
|
|
|
|
# - production
|
|
|
|
|
|
|
|
# # blacklist
|
|
|
|
# except:
|
|
|
|
# - gh-pages
|
|
|
|
|
|
|
|
|
|
|
|
#---------------------------------#
|
|
|
|
# environment configuration #
|
|
|
|
#---------------------------------#
|
|
|
|
|
|
|
|
# Build worker image (VM template)
|
|
|
|
image: Visual Studio 2019
|
|
|
|
|
|
|
|
# scripts that are called at very beginning, before repo cloning
|
|
|
|
# init:
|
|
|
|
# - git config --global core.autocrlf false
|
|
|
|
|
|
|
|
|
|
|
|
# set clone depth
|
|
|
|
clone_depth: 5 # clone entire repository history if not defined
|
|
|
|
|
|
|
|
|
|
|
|
test_script:
|
|
|
|
ps: dotnet test
|
|
|
|
|
|
|
|
#on_finish:
|
|
|
|
# ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
|
|
|
|
|
|
|
# environment variables
|
|
|
|
environment:
|
|
|
|
# my_var1: value1
|
|
|
|
# # this is how to set encrypted variable. Go to "Settings" -> "Encrypt YAML" page in account menu to encrypt data.
|
|
|
|
# my_secure_var1:
|
|
|
|
# secure: FW3tJ3fMncxvs58/ifSP7w==
|
|
|
|
matrix:
|
|
|
|
- platform: Any CPU
|
|
|
|
configuration: Debug
|
|
|
|
- platform: Any CPU
|
|
|
|
configuration: Release
|
|
|
|
|
|
|
|
# this is how to allow failing jobs in the matrix
|
|
|
|
matrix:
|
|
|
|
fast_finish: false # set this flag to immediately finish build once one of the jobs fails.
|
|
|
|
|
|
|
|
# build cache to preserve files/folders between builds
|
|
|
|
cache:
|
|
|
|
- packages -> **\packages.config # preserve "packages" directory in the root of build folder but will reset it if packages.config is modified
|
|
|
|
# - '%LocalAppData%\NuGet\Cache' # NuGet < v3
|
|
|
|
- '%LocalAppData%\NuGet\v3-cache' # NuGet v3
|
|
|
|
|
|
|
|
|
|
|
|
# Automatically register private account and/or project AppVeyor NuGet feeds.
|
|
|
|
# nuget:
|
|
|
|
# account_feed: true
|
|
|
|
# project_feed: true
|
|
|
|
# disable_publish_on_pr: true # disable publishing of .nupkg artifacts to account/project feeds for pull request builds
|
|
|
|
# publish_wap_octopus: true # disable publishing of Octopus Deploy .nupkg artifacts to account/project feeds
|
|
|
|
|
|
|
|
#---------------------------------#
|
|
|
|
# build configuration #
|
|
|
|
#---------------------------------#
|
|
|
|
|
|
|
|
# Build settings, not to be confused with "before_build" and "after_build".
|
|
|
|
# "project" is relative to the original build directory and not influenced by directory changes in "before_build".
|
|
|
|
build:
|
|
|
|
# parallel: true # enable MSBuild parallel builds
|
|
|
|
# project: MyTestAzureCS.sln # path to Visual Studio solution or project
|
|
|
|
# publish_wap: true # package Web Application Projects (WAP) for Web Deploy
|
|
|
|
# publish_wap_xcopy: true # package Web Application Projects (WAP) for XCopy deployment
|
|
|
|
# publish_wap_beanstalk: true # Package Web Applications for AWS Elastic Beanstalk deployment
|
|
|
|
# publish_wap_octopus: true # Package Web Applications for Octopus deployment
|
|
|
|
# publish_azure_webjob: true # Package Azure WebJobs for Zip Push deployment
|
|
|
|
# publish_azure: true # package Azure Cloud Service projects and push to artifacts
|
|
|
|
# publish_aspnet_core: true # Package ASP.NET Core projects
|
|
|
|
# publish_core_console: true # Package .NET Core console projects
|
|
|
|
# publish_nuget: true # package projects with .nuspec files and push to artifacts
|
|
|
|
# publish_nuget_symbols: true # generate and publish NuGet symbol packages
|
|
|
|
# include_nuget_references: true # add -IncludeReferencedProjects option while packaging NuGet artifacts
|
|
|
|
|
|
|
|
# MSBuild verbosity level
|
|
|
|
verbosity: normal # quiet|minimal|normal|detailed
|
|
|
|
|
|
|
|
|
|
|
|
# scripts to run before build
|
|
|
|
before_build:
|
|
|
|
- cmd: nuget restore
|
|
|
|
|
|
|
|
# to run your custom scripts instead of automatic MSBuild
|
|
|
|
# build_script:
|
|
|
|
|
|
|
|
# scripts to run after build (working directory and environment changes are persisted from the previous steps)
|
|
|
|
after_build:
|
|
|
|
- ps: |+
|
|
|
|
function Calculate-Hash($file)
|
|
|
|
{
|
|
|
|
$newLine = "`r`n"
|
|
|
|
$text = (Split-Path $file -Leaf) + $newLine
|
|
|
|
$text += 'MD5' + $newLine
|
|
|
|
$text += (Get-FileHash $file -Algorithm MD5).Hash + $newLine
|
|
|
|
$text += 'SHA-1' + $newLine
|
|
|
|
$text += (Get-FileHash $file -Algorithm SHA1).Hash + $newLine
|
|
|
|
$text += 'SHA-256' + $newLine
|
|
|
|
$text += (Get-FileHash $file -Algorithm SHA256).Hash + $newLine
|
|
|
|
$text += 'SHA-512' + $newLine
|
|
|
|
$text += (Get-FileHash $file -Algorithm SHA512).Hash + $newLine
|
|
|
|
return $text
|
|
|
|
}
|
|
|
|
|
|
|
|
$WorkingFolder = "$env:APPVEYOR_BUILD_FOLDER\working"
|
|
|
|
New-Item $WorkingFolder -ItemType Directory -Force
|
|
|
|
$HashFile = "all.hash"
|
|
|
|
$TargetProjectFile = "$env:APPVEYOR_BUILD_FOLDER\Shadowsocks.WPF\Shadowsocks.WPF.csproj"
|
|
|
|
|
|
|
|
# Publish and deploy
|
|
|
|
|
|
|
|
# Normal package
|
|
|
|
dotnet publish -c $env:CONFIGURATION $TargetProjectFile
|
|
|
|
# Package into a self-contained single-file executable
|
|
|
|
dotnet publish -r win-x64 -c $env:CONFIGURATION -p:PublishSingleFile=true -p:PublishTrimmed=true $TargetProjectFile
|
|
|
|
dotnet publish -r win-x86 -c $env:CONFIGURATION -p:PublishSingleFile=true -p:PublishTrimmed=true $TargetProjectFile
|
|
|
|
|
|
|
|
$ZipDev = "$WorkingFolder\shadowsocks-windows-$env:APPVEYOR_BUILD_VERSION-dev.zip"
|
|
|
|
$ZipMinimal = "$WorkingFolder\shadowsocks-windows-$env:APPVEYOR_BUILD_VERSION-minimal.zip"
|
|
|
|
$ZipSingleExeX64 = "$WorkingFolder\shadowsocks-windows-$env:APPVEYOR_BUILD_VERSION-portable-x64.zip"
|
|
|
|
$ZipSingleExeX86 = "$WorkingFolder\shadowsocks-windows-$env:APPVEYOR_BUILD_VERSION-portable-x86.zip"
|
|
|
|
7z a $ZipDev "$env:APPVEYOR_BUILD_FOLDER\Shadowsocks.WPF\bin\$env:CONFIGURATION\net5.0-windows10.0.19041.0\*"
|
|
|
|
7z a $ZipMinimal "$env:APPVEYOR_BUILD_FOLDER\Shadowsocks.WPF\bin\Any CPU\$env:CONFIGURATION\net5.0-windows10.0.19041.0\publish\*"
|
|
|
|
7z a $ZipSingleExeX64 "$env:APPVEYOR_BUILD_FOLDER\Shadowsocks.WPF\bin\Any CPU\$env:CONFIGURATION\net5.0-windows10.0.19041.0\win-x64\publish\*"
|
|
|
|
7z a $ZipSingleExeX86 "$env:APPVEYOR_BUILD_FOLDER\Shadowsocks.WPF\bin\Any CPU\$env:CONFIGURATION\net5.0-windows10.0.19041.0\win-x86\publish\*"
|
|
|
|
Calculate-Hash -file $ZipDev | Out-File -FilePath $HashFile -Append
|
|
|
|
Calculate-Hash -file $ZipMinimal | Out-File -FilePath $HashFile -Append
|
|
|
|
Calculate-Hash -file $ZipSingleExeX64 | Out-File -FilePath $HashFile -Append
|
|
|
|
Calculate-Hash -file $ZipSingleExeX86 | Out-File -FilePath $HashFile -Append
|
|
|
|
Push-AppveyorArtifact $ZipDev
|
|
|
|
Push-AppveyorArtifact $ZipMinimal
|
|
|
|
Push-AppveyorArtifact $ZipSingleExeX64
|
|
|
|
Push-AppveyorArtifact $ZipSingleExeX86
|
|
|
|
|
|
|
|
Push-AppveyorArtifact $HashFile
|
|
|
|
|
|
|
|
# scripts to run *after* solution is built and *before* automatic packaging occurs (web apps, NuGet packages, Azure Cloud Services)
|
|
|
|
# before_package:
|
|
|
|
|
|
|
|
# to disable automatic builds
|
|
|
|
#build: off
|
|
|
|
|
|
|
|
|
|
|
|
#---------------------------------#
|
|
|
|
# deployment configuration #
|
|
|
|
#---------------------------------#
|
|
|
|
|
|
|
|
# providers: Local, FTP, WebDeploy, AzureCS, AzureBlob, S3, NuGet, Environment
|
|
|
|
# provider names are case-sensitive!
|
|
|
|
# deploy:
|
|
|
|
|
|
|
|
# # scripts to run before deployment
|
|
|
|
# before_deploy:
|
|
|
|
|
|
|
|
# # scripts to run after deployment
|
|
|
|
# after_deploy:
|
|
|
|
|
|
|
|
# # to run your custom scripts instead of provider deployments
|
|
|
|
# deploy_script:
|
|
|
|
|
|
|
|
# # to disable deployment
|
|
|
|
#deploy: off
|