|
-
- # 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
|