Rewrite the Appveyor build pipelinetags/4.1.8.0
@@ -1,22 +1,186 @@ | |||||
version: 1.0.{build} | |||||
image: Visual Studio 2017 | |||||
environment: | |||||
matrix: | |||||
- platform: x86 | |||||
configuration: Debug | |||||
- platform: x86 | |||||
configuration: Release | |||||
matrix: | |||||
fast_finish: false | |||||
nuget: | |||||
project_feed: true | |||||
before_build: | |||||
- cmd: nuget restore | |||||
build: | |||||
parallel: true | |||||
verbosity: normal | |||||
artifacts: | |||||
- path: shadowsocks-csharp\bin\x86\Release\Shadowsocks.exe | |||||
name: Shadowsocks-release.exe | |||||
- path: shadowsocks-csharp\bin\x86\Debug\Shadowsocks.exe | |||||
name: Shadowsocks-debug.exe | |||||
# 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: 1.0.{build} | |||||
# # branches to build | |||||
# branches: | |||||
# # whitelist | |||||
# only: | |||||
# - master | |||||
# - production | |||||
# # blacklist | |||||
# except: | |||||
# - gh-pages | |||||
#---------------------------------# | |||||
# environment configuration # | |||||
#---------------------------------# | |||||
# Build worker image (VM template) | |||||
image: Visual Studio 2017 | |||||
# 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 | |||||
# 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: x86 | |||||
configuration: Debug | |||||
- platform: x86 | |||||
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 | |||||
# 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 CalculateHash($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 | |||||
return $text | |||||
} | |||||
$WorkingFolder = "$env:APPVEYOR_BUILD_FOLDER\working" | |||||
$ExeFileName = "Shadowsocks-$env:APPVEYOR_BUILD_VERSION-$env:CONFIGURATION.exe" | |||||
$ExeFile = "$WorkingFolder\$ExeFileName" | |||||
$ExeHashFile = "$Exefile.hash" | |||||
New-Item $WorkingFolder -ItemType Directory -Force | |||||
Copy-Item $env:APPVEYOR_BUILD_FOLDER\shadowsocks-csharp\bin\$env:PLATFORM\$env:CONFIGURATION\Shadowsocks.exe $WorkingFolder\Shadowsocks.exe | |||||
Copy-Item $WorkingFolder\Shadowsocks.exe $ExeFile | |||||
CalculateHash -file $Exefile | Out-File -FilePath $ExeHashFile | |||||
Push-AppveyorArtifact $ExeFile | |||||
Push-AppveyorArtifact $ExeHashFile | |||||
# Create and deploy the release zip | |||||
if ($env:configuration -eq 'Release') | |||||
{ | |||||
$ReleaseFile = "$WorkingFolder\Shadowsocks.exe" | |||||
$HashFile = "$ReleaseFile.hash" | |||||
$ZipFile = "$WorkingFolder\Shadowsocks-$env:APPVEYOR_BUILD_VERSION.zip" | |||||
$ZipHashFile = "$ZipFile.hash" | |||||
# Calculate exe Hash and archieve both exe and hash to zip | |||||
CalculateHash -file $ReleaseFile | Out-File -FilePath $hashFile | |||||
7z a $ZipFile $ReleaseFile | |||||
7z a $ZipFile $HashFile | |||||
Push-AppveyorArtifact $ZipFile | |||||
# Calculate zip Hash | |||||
CalculateHash -file $ZipFile | Out-File -FilePath $ZipHashFile | |||||
Push-AppveyorArtifact $ZipHashFile | |||||
} | |||||
# 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: | |||||
# Deploy to GitHub Releases | |||||
- provider: GitHub | |||||
auth_token: | |||||
secure: ZrRlVe3eWp1ccIVZcmFrI7vaCxwz5ewIMSmaPUTjMGyC1rVRlYm7nWWi6Pzkpe0A | |||||
description: '%APPVEYOR_BUILD_VERSION%' | |||||
artifact: Shadowsocks-%APPVEYOR_BUILD_VERSION%.zip, Shadowsocks-%APPVEYOR_BUILD_VERSION%.zip.hash | |||||
draft: true | |||||
prerelease: true | |||||
on: | |||||
branch: master # release from master branch only | |||||
configuration: Release | |||||
APPVEYOR_REPO_TAG: true # deploy on tag push only | |||||
# # 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 |
@@ -0,0 +1,24 @@ | |||||
# Created by wongsyrone | |||||
version: 1.0.{build} | |||||
image: Visual Studio 2017 | |||||
environment: | |||||
matrix: | |||||
- platform: x86 | |||||
configuration: Debug | |||||
- platform: x86 | |||||
configuration: Release | |||||
matrix: | |||||
fast_finish: false | |||||
nuget: | |||||
project_feed: true | |||||
before_build: | |||||
- cmd: nuget restore | |||||
build: | |||||
parallel: true | |||||
verbosity: normal | |||||
artifacts: | |||||
- path: shadowsocks-csharp\bin\x86\Release\Shadowsocks.exe | |||||
name: Shadowsocks-release.exe | |||||
- path: shadowsocks-csharp\bin\x86\Debug\Shadowsocks.exe | |||||
name: Shadowsocks-debug.exe |
@@ -0,0 +1,483 @@ | |||||
# 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 | |||||
version: 1.0.{build} | |||||
# you can use {branch} name in version format too | |||||
# version: 1.0.{build}-{branch} | |||||
# branches to build | |||||
branches: | |||||
# whitelist | |||||
only: | |||||
- master | |||||
- production | |||||
# blacklist | |||||
except: | |||||
- gh-pages | |||||
# Do not build on tags (GitHub and BitBucket) | |||||
skip_tags: true | |||||
# Start builds on tags only (GitHub and BitBucket) | |||||
skip_non_tags: true | |||||
# Skipping commits with particular message or from specific user | |||||
skip_commits: | |||||
message: /Created.*\.(png|jpg|jpeg|bmp|gif)/ # Regex for matching commit message | |||||
author: John # Commit author's username, name, email or regexp maching one of these. | |||||
# Including commits with particular message or from specific user | |||||
only_commits: | |||||
message: /build/ # Start a new build if message contains 'build' | |||||
author: jack@company.com # Start a new build for commit of user with email jack@company.com | |||||
# Skipping commits affecting specific files (GitHub only). More details here: /docs/appveyor-yml | |||||
#skip_commits: | |||||
# files: | |||||
# - docs/* | |||||
# - '**/*.html' | |||||
# Including commits affecting specific files (GitHub only). More details here: /docs/appveyor-yml | |||||
#only_commits: | |||||
# files: | |||||
# - Project-A/ | |||||
# - Project-B/ | |||||
# Do not build feature branch with open Pull Requests | |||||
skip_branch_with_pr: true | |||||
# Maximum number of concurrent jobs for the project | |||||
max_jobs: 1 | |||||
#---------------------------------# | |||||
# environment configuration # | |||||
#---------------------------------# | |||||
# Build worker image (VM template) | |||||
image: Visual Studio 2015 | |||||
# scripts that are called at very beginning, before repo cloning | |||||
init: | |||||
- git config --global core.autocrlf input | |||||
# clone directory | |||||
clone_folder: c:\projects\myproject | |||||
# fetch repository as zip archive | |||||
shallow_clone: true # default is "false" | |||||
# set clone depth | |||||
clone_depth: 5 # clone entire repository history if not defined | |||||
# setting up etc\hosts file | |||||
hosts: | |||||
queue-server: 127.0.0.1 | |||||
db.server.com: 127.0.0.2 | |||||
# environment variables | |||||
environment: | |||||
my_var1: value1 | |||||
my_var2: value2 | |||||
# 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== | |||||
# environment: | |||||
# global: | |||||
# connection_string: server=12;password=13; | |||||
# service_url: https://127.0.0.1:8090 | |||||
# | |||||
# matrix: | |||||
# - db: mysql | |||||
# provider: mysql | |||||
# | |||||
# - db: mssql | |||||
# provider: mssql | |||||
# password: | |||||
# secure: $#(JFDA)jQ@#$ | |||||
# this is how to allow failing jobs in the matrix | |||||
matrix: | |||||
fast_finish: true # set this flag to immediately finish build once one of the jobs fails. | |||||
allow_failures: | |||||
- platform: x86 | |||||
configuration: Debug | |||||
- platform: x64 | |||||
configuration: Release | |||||
# exclude configuration from the matrix. Works similarly to 'allow_failures' but build not even being started for excluded combination. | |||||
exclude: | |||||
- platform: x86 | |||||
configuration: Debug | |||||
# 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 | |||||
- projectA\libs | |||||
- node_modules # local npm modules | |||||
- '%LocalAppData%\NuGet\Cache' # NuGet < v3 | |||||
- '%LocalAppData%\NuGet\v3-cache' # NuGet v3 | |||||
# enable service required for build/tests | |||||
services: | |||||
- mssql2014 # start SQL Server 2014 Express | |||||
- mssql2014rs # start SQL Server 2014 Express and Reporting Services | |||||
- mssql2012sp1 # start SQL Server 2012 SP1 Express | |||||
- mssql2012sp1rs # start SQL Server 2012 SP1 Express and Reporting Services | |||||
- mssql2008r2sp2 # start SQL Server 2008 R2 SP2 Express | |||||
- mssql2008r2sp2rs # start SQL Server 2008 R2 SP2 Express and Reporting Services | |||||
- mysql # start MySQL 5.6 service | |||||
- postgresql # start PostgreSQL 9.5 service | |||||
- iis # start IIS | |||||
- msmq # start Queuing services | |||||
- mongodb # start MongoDB | |||||
# scripts that run after cloning repository | |||||
install: | |||||
# by default, all script lines are interpreted as batch | |||||
- echo This is batch | |||||
# to run script as a PowerShell command prepend it with ps: | |||||
- ps: Write-Host 'This is PowerShell' | |||||
# batch commands start from cmd: | |||||
- cmd: echo This is batch again | |||||
- cmd: set MY_VAR=12345 | |||||
# enable patching of AssemblyInfo.* files | |||||
assembly_info: | |||||
patch: true | |||||
file: AssemblyInfo.* | |||||
assembly_version: "2.2.{build}" | |||||
assembly_file_version: "{version}" | |||||
assembly_informational_version: "{version}" | |||||
# 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 platform, i.e. x86, x64, Any CPU. This setting is optional. | |||||
platform: Any CPU | |||||
# to add several platforms to build matrix: | |||||
#platform: | |||||
# - x86 | |||||
# - Any CPU | |||||
# build Configuration, i.e. Debug, Release, etc. | |||||
configuration: Release | |||||
# to add several configurations to build matrix: | |||||
#configuration: | |||||
# - Debug | |||||
# - Release | |||||
# 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: quiet|minimal|normal|detailed | |||||
# scripts to run before build | |||||
before_build: | |||||
# 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: | |||||
# 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 | |||||
#---------------------------------# | |||||
# tests configuration # | |||||
#---------------------------------# | |||||
# to run tests against only selected assemblies and/or categories | |||||
test: | |||||
assemblies: | |||||
only: | |||||
- asm1.dll | |||||
- asm2.dll | |||||
categories: | |||||
only: | |||||
- UI | |||||
- E2E | |||||
# to run tests against all except selected assemblies and/or categories | |||||
#test: | |||||
# assemblies: | |||||
# except: | |||||
# - asm1.dll | |||||
# - asm2.dll | |||||
# | |||||
# categories: | |||||
# except: | |||||
# - UI | |||||
# - E2E | |||||
# to run tests from different categories as separate jobs in parallel | |||||
#test: | |||||
# categories: | |||||
# - A # A category common for all jobs | |||||
# - [UI] # 1st job | |||||
# - [DAL, BL] # 2nd job | |||||
# scripts to run before tests (working directory and environment changes are persisted from the previous steps such as "before_build") | |||||
before_test: | |||||
- echo script1 | |||||
- ps: Write-Host "script1" | |||||
# to run your custom scripts instead of automatic tests | |||||
test_script: | |||||
- echo This is my custom test script | |||||
# scripts to run after tests | |||||
after_test: | |||||
# to disable automatic tests | |||||
#test: off | |||||
#---------------------------------# | |||||
# artifacts configuration # | |||||
#---------------------------------# | |||||
artifacts: | |||||
# pushing a single file | |||||
- path: test.zip | |||||
# pushing a single file with environment variable in path and "Deployment name" specified | |||||
- path: MyProject\bin\$(configuration) | |||||
name: myapp | |||||
# pushing entire folder as a zip archive | |||||
- path: logs | |||||
# pushing all *.nupkg files in build directory recursively | |||||
- path: '**\*.nupkg' | |||||
#---------------------------------# | |||||
# deployment configuration # | |||||
#---------------------------------# | |||||
# providers: Local, FTP, WebDeploy, AzureCS, AzureBlob, S3, NuGet, Environment | |||||
# provider names are case-sensitive! | |||||
deploy: | |||||
# FTP deployment provider settings | |||||
- provider: FTP | |||||
protocol: ftp|ftps|sftp | |||||
host: ftp.myserver.com | |||||
username: admin | |||||
password: | |||||
secure: eYKZKFkkEvFYWX6NfjZIVw== | |||||
folder: | |||||
application: | |||||
active_mode: false | |||||
beta: true # enable alternative FTP library for 'ftp' and 'ftps' modes | |||||
debug: true # show complete FTP log | |||||
# Amazon S3 deployment provider settings | |||||
- provider: S3 | |||||
access_key_id: | |||||
secure: ABcd== | |||||
secret_access_key: | |||||
secure: ABcd== | |||||
bucket: my_bucket | |||||
folder: | |||||
artifact: | |||||
set_public: false | |||||
# Azure Blob storage deployment provider settings | |||||
- provider: AzureBlob | |||||
storage_account_name: | |||||
secure: ABcd== | |||||
storage_access_key: | |||||
secure: ABcd== | |||||
container: my_container | |||||
folder: | |||||
artifact: | |||||
# Web Deploy deployment provider settings | |||||
- provider: WebDeploy | |||||
server: http://www.deploy.com/myendpoint | |||||
website: mywebsite | |||||
username: user | |||||
password: | |||||
secure: eYKZKFkkEvFYWX6NfjZIVw== | |||||
ntlm: false | |||||
remove_files: false | |||||
app_offline: false | |||||
do_not_use_checksum: true # do not use check sum for comparing source and destination files. By default checksums are used. | |||||
sync_retry_attempts: 2 # sync attempts, max | |||||
sync_retry_interval: 2000 # timeout between sync attempts, milliseconds | |||||
aspnet_core: true # artifact zip contains ASP.NET Core application | |||||
aspnet_core_force_restart: true # poke app's web.config before deploy to force application restart | |||||
skip_dirs: \\App_Data | |||||
skip_files: web.config | |||||
on: | |||||
branch: release | |||||
platform: x86 | |||||
configuration: debug | |||||
# Deploying to Azure Cloud Service | |||||
- provider: AzureCS | |||||
subscription_id: | |||||
secure: fjZIVw== | |||||
subscription_certificate: | |||||
secure: eYKZKFkkEv...FYWX6NfjZIVw== | |||||
storage_account_name: my_storage | |||||
storage_access_key: | |||||
secure: ABcd== | |||||
service: my_service | |||||
slot: Production | |||||
target_profile: Cloud | |||||
artifact: MyPackage.cspkg | |||||
# Deploying to NuGet feed | |||||
- provider: NuGet | |||||
server: https://my.nuget.server/feed | |||||
api_key: | |||||
secure: FYWX6NfjZIVw== | |||||
skip_symbols: false | |||||
symbol_server: https://your.symbol.server/feed | |||||
artifact: MyPackage.nupkg | |||||
# Deploy to GitHub Releases | |||||
- provider: GitHub | |||||
artifact: /.*\.nupkg/ # upload all NuGet packages to release assets | |||||
draft: false | |||||
prerelease: false | |||||
on: | |||||
branch: master # release from master branch only | |||||
APPVEYOR_REPO_TAG: true # deploy on tag push only | |||||
# Deploying to a named environment | |||||
- provider: Environment | |||||
name: staging | |||||
on: | |||||
branch: staging | |||||
env_var1: value1 | |||||
env_var2: value2 | |||||
# 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 | |||||
#---------------------------------# | |||||
# global handlers # | |||||
#---------------------------------# | |||||
# on successful build | |||||
on_success: | |||||
- do something | |||||
# on build failure | |||||
on_failure: | |||||
- do something | |||||
# after build failure or success | |||||
on_finish: | |||||
- do something | |||||
#---------------------------------# | |||||
# notifications # | |||||
#---------------------------------# | |||||
notifications: | |||||
- provider: Email | |||||
to: | |||||
- user1@email.com | |||||
- user2@email.com | |||||
subject: 'Build {{status}}' # optional | |||||
message: "{{message}}, {{commitId}}, ..." # optional | |||||
on_build_status_changed: true | |||||
# HipChat | |||||
- provider: HipChat | |||||
auth_token: | |||||
secure: RbOnSMSFKYzxzFRrxM1+XA== | |||||
room: ProjectA | |||||
template: "{message}, {commitId}, ..." | |||||
# Slack | |||||
- provider: Slack | |||||
incoming_webhook: http://incoming-webhook-url | |||||
# ...or using auth token | |||||
- provider: Slack | |||||
auth_token: | |||||
secure: kBl9BlxvRMr9liHmnBs14A== | |||||
channel: development | |||||
template: "{message}, {commitId}, ..." | |||||
# Campfire | |||||
- provider: Campfire | |||||
account: appveyor | |||||
auth_token: | |||||
secure: RifLRG8Vfyol+sNhj9u2JA== | |||||
room: ProjectA | |||||
template: "{message}, {commitId}, ..." | |||||
# Webhook | |||||
- provider: Webhook | |||||
url: http://www.myhook2.com | |||||
headers: | |||||
User-Agent: myapp 1.0 | |||||
Authorization: | |||||
secure: GhD+5xhLz/tkYY6AO3fcfQ== | |||||
on_build_success: false | |||||
on_build_failure: true | |||||
on_build_status_changed: true |
@@ -1,6 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | |||||
<configuration> | |||||
<config> | |||||
<add key="repositoryPath" value="shadowsocks-csharp\3rd" /> | |||||
</config> | |||||
</configuration> |
@@ -4,7 +4,6 @@ | |||||
<xs:element name="Weavers"> | <xs:element name="Weavers"> | ||||
<xs:complexType> | <xs:complexType> | ||||
<xs:all> | <xs:all> | ||||
<xs:element name="Caseless" minOccurs="0" maxOccurs="1" type="xs:anyType" /> | |||||
<xs:element name="Costura" minOccurs="0" maxOccurs="1"> | <xs:element name="Costura" minOccurs="0" maxOccurs="1"> | ||||
<xs:complexType> | <xs:complexType> | ||||
<xs:all> | <xs:all> | ||||
@@ -91,6 +90,7 @@ | |||||
</xs:attribute> | </xs:attribute> | ||||
</xs:complexType> | </xs:complexType> | ||||
</xs:element> | </xs:element> | ||||
<xs:element name="Caseless" minOccurs="0" maxOccurs="1" type="xs:anyType" /> | |||||
</xs:all> | </xs:all> | ||||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> | <xs:attribute name="VerifyAssembly" type="xs:boolean"> | ||||
<xs:annotation> | <xs:annotation> | ||||
@@ -1,10 +1,10 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<packages> | <packages> | ||||
<package id="Caseless.Fody" version="1.8.3" targetFramework="net462" developmentDependency="true" /> | |||||
<package id="Costura.Fody" version="3.3.2" targetFramework="net462" developmentDependency="true" /> | |||||
<package id="Fody" version="4.0.0" targetFramework="net462" developmentDependency="true" /> | |||||
<package id="GlobalHotKey" version="1.1.0" targetFramework="net462" /> | |||||
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net462" /> | |||||
<package id="StringEx.CS" version="0.3.1" targetFramework="net462" developmentDependency="true" /> | |||||
<package id="ZXing.Net" version="0.16.4" targetFramework="net462" /> | |||||
<package id="Caseless.Fody" version="1.8.3" targetFramework="net472" /> | |||||
<package id="Costura.Fody" version="3.3.3" targetFramework="net472" /> | |||||
<package id="Fody" version="4.2.1" targetFramework="net472" developmentDependency="true" /> | |||||
<package id="GlobalHotKey" version="1.1.0" targetFramework="net472" /> | |||||
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net472" /> | |||||
<package id="StringEx.CS" version="0.3.1" targetFramework="net472" developmentDependency="true" /> | |||||
<package id="ZXing.Net" version="0.16.5" targetFramework="net472" /> | |||||
</packages> | </packages> |
@@ -1,7 +1,7 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
<Import Project="3rd\Caseless.Fody.1.8.3\build\Caseless.Fody.props" Condition="Exists('3rd\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" /> | |||||
<Import Project="3rd\Costura.Fody.3.3.2\build\Costura.Fody.props" Condition="Exists('3rd\Costura.Fody.3.3.2\build\Costura.Fody.props')" /> | |||||
<Import Project="..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props')" /> | |||||
<Import Project="..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props" Condition="Exists('..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" /> | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||||
@@ -69,19 +69,18 @@ | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<Reference Include="Caseless, Version=1.8.3.0, Culture=neutral, PublicKeyToken=409b3227471b0f0d, processorArchitecture=MSIL"> | <Reference Include="Caseless, Version=1.8.3.0, Culture=neutral, PublicKeyToken=409b3227471b0f0d, processorArchitecture=MSIL"> | ||||
<HintPath>3rd\Caseless.Fody.1.8.3\lib\net452\Caseless.dll</HintPath> | |||||
<HintPath>..\packages\Caseless.Fody.1.8.3\lib\net452\Caseless.dll</HintPath> | |||||
</Reference> | </Reference> | ||||
<Reference Include="Costura, Version=3.3.2.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL"> | |||||
<HintPath>3rd\Costura.Fody.3.3.2\lib\net40\Costura.dll</HintPath> | |||||
<Reference Include="Costura, Version=3.3.3.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL"> | |||||
<HintPath>..\packages\Costura.Fody.3.3.3\lib\net40\Costura.dll</HintPath> | |||||
</Reference> | </Reference> | ||||
<Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> | <Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> | ||||
<HintPath>3rd\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | |||||
<Private>True</Private> | |||||
<HintPath>..\packages\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | |||||
</Reference> | </Reference> | ||||
<Reference Include="Microsoft.CSharp" /> | <Reference Include="Microsoft.CSharp" /> | ||||
<Reference Include="Microsoft.VisualBasic" /> | <Reference Include="Microsoft.VisualBasic" /> | ||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | ||||
<HintPath>3rd\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> | |||||
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath> | |||||
</Reference> | </Reference> | ||||
<Reference Include="PresentationCore" /> | <Reference Include="PresentationCore" /> | ||||
<Reference Include="System" /> | <Reference Include="System" /> | ||||
@@ -94,11 +93,11 @@ | |||||
<Reference Include="System.Windows.Forms.DataVisualization" /> | <Reference Include="System.Windows.Forms.DataVisualization" /> | ||||
<Reference Include="System.XML" /> | <Reference Include="System.XML" /> | ||||
<Reference Include="WindowsBase" /> | <Reference Include="WindowsBase" /> | ||||
<Reference Include="zxing, Version=0.16.4.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||||
<HintPath>3rd\ZXing.Net.0.16.4\lib\net461\zxing.dll</HintPath> | |||||
<Reference Include="zxing, Version=0.16.5.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||||
<HintPath>..\packages\ZXing.Net.0.16.5\lib\net47\zxing.dll</HintPath> | |||||
</Reference> | </Reference> | ||||
<Reference Include="zxing.presentation, Version=0.16.4.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||||
<HintPath>3rd\ZXing.Net.0.16.4\lib\net461\zxing.presentation.dll</HintPath> | |||||
<Reference Include="zxing.presentation, Version=0.16.5.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||||
<HintPath>..\packages\ZXing.Net.0.16.5\lib\net47\zxing.presentation.dll</HintPath> | |||||
</Reference> | </Reference> | ||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -162,8 +161,8 @@ | |||||
<Compile Include="Controller\Service\Sip003Plugin.cs" /> | <Compile Include="Controller\Service\Sip003Plugin.cs" /> | ||||
<Compile Include="Proxy\Socks5Proxy.cs" /> | <Compile Include="Proxy\Socks5Proxy.cs" /> | ||||
<Compile Include="Settings.cs" /> | <Compile Include="Settings.cs" /> | ||||
<Compile Include="StringEx.cs" /> | |||||
<Compile Include="Controller\System\Hotkeys\Hotkeys.cs" /> | <Compile Include="Controller\System\Hotkeys\Hotkeys.cs" /> | ||||
<Compile Include="StringEx.cs" /> | |||||
<Compile Include="Util\ProcessManagement\Job.cs" /> | <Compile Include="Util\ProcessManagement\Job.cs" /> | ||||
<Compile Include="Util\ProcessManagement\ThreadUtil.cs" /> | <Compile Include="Util\ProcessManagement\ThreadUtil.cs" /> | ||||
<Compile Include="Util\Sockets\LineReader.cs" /> | <Compile Include="Util\Sockets\LineReader.cs" /> | ||||
@@ -291,11 +290,6 @@ | |||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> | <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> | ||||
<Install>false</Install> | <Install>false</Install> | ||||
</BootstrapperPackage> | </BootstrapperPackage> | ||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> | |||||
<Visible>False</Visible> | |||||
<ProductName>.NET Framework 2.0 %28x86%29</ProductName> | |||||
<Install>false</Install> | |||||
</BootstrapperPackage> | |||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> | <BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> | ||||
<Visible>False</Visible> | <Visible>False</Visible> | ||||
<ProductName>.NET Framework 3.0 %28x86%29</ProductName> | <ProductName>.NET Framework 3.0 %28x86%29</ProductName> | ||||
@@ -318,51 +312,15 @@ | |||||
</BootstrapperPackage> | </BootstrapperPackage> | ||||
</ItemGroup> | </ItemGroup> | ||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||||
<UsingTask TaskName="CosturaCleanup" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" TaskFactory="CodeTaskFactory"> | |||||
<ParameterGroup> | |||||
<Config Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem" /> | |||||
<Files Output="false" Required="true" ParameterType="Microsoft.Build.Framework.ITaskItem[]" /> | |||||
</ParameterGroup> | |||||
<Task Evaluate="true"> | |||||
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml" /> | |||||
<Reference xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Include="System.Xml.Linq" /> | |||||
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System" /> | |||||
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.IO" /> | |||||
<Using xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Namespace="System.Xml.Linq" /> | |||||
<Code xmlns="http://schemas.microsoft.com/developer/msbuild/2003" Type="Fragment" Language="cs"><![CDATA[ | |||||
var config = XElement.Load(Config.ItemSpec).Elements("Costura").FirstOrDefault(); | |||||
if (config == null) return true; | |||||
var excludedAssemblies = new List<string>(); | |||||
var attribute = config.Attribute("ExcludeAssemblies"); | |||||
if (attribute != null) | |||||
foreach (var item in attribute.Value.Split('|').Select(x => x.Trim()).Where(x => x != string.Empty)) | |||||
excludedAssemblies.Add(item); | |||||
var element = config.Element("ExcludeAssemblies"); | |||||
if (element != null) | |||||
foreach (var item in element.Value.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => x != string.Empty)) | |||||
excludedAssemblies.Add(item); | |||||
var filesToCleanup = Files.Select(f => f.ItemSpec).Where(f => !excludedAssemblies.Contains(Path.GetFileNameWithoutExtension(f), StringComparer.InvariantCultureIgnoreCase)); | |||||
foreach (var item in filesToCleanup) | |||||
File.Delete(item); | |||||
]]></Code> | |||||
</Task> | |||||
</UsingTask> | |||||
<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild;NonWinFodyTarget"> | |||||
<CosturaCleanup Config="FodyWeavers.xml" Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" /> | |||||
</Target> | |||||
<Import Project="..\packages\Fody.4.2.1\build\Fody.targets" Condition="Exists('..\packages\Fody.4.2.1\build\Fody.targets')" /> | |||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | ||||
<PropertyGroup> | <PropertyGroup> | ||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
<Error Condition="!Exists('3rd\Costura.Fody.3.3.2\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '3rd\Costura.Fody.3.3.2\build\Costura.Fody.props'))" /> | |||||
<Error Condition="!Exists('3rd\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '3rd\Caseless.Fody.1.8.3\build\Caseless.Fody.props'))" /> | |||||
<Error Condition="!Exists('3rd\Fody.4.0.0\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '3rd\Fody.4.0.0\build\Fody.targets'))" /> | |||||
<Error Condition="!Exists('..\packages\Fody.4.2.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.4.2.1\build\Fody.targets'))" /> | |||||
<Error Condition="!Exists('..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props'))" /> | |||||
<Error Condition="!Exists('..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props'))" /> | |||||
</Target> | </Target> | ||||
<Import Project="3rd\Fody.4.0.0\build\Fody.targets" Condition="Exists('3rd\Fody.4.0.0\build\Fody.targets')" /> | |||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. | <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | ||||
Other similar extension points exist, see Microsoft.Common.targets. | Other similar extension points exist, see Microsoft.Common.targets. | ||||
<Target Name="BeforeBuild"> | <Target Name="BeforeBuild"> | ||||
@@ -36,7 +36,7 @@ | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> | <Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> | ||||
<HintPath>..\shadowsocks-csharp\3rd\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | |||||
<HintPath>..\packages\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | |||||
</Reference> | </Reference> | ||||
<Reference Include="System" /> | <Reference Include="System" /> | ||||
<Reference Include="System.Management" /> | <Reference Include="System.Management" /> | ||||
@@ -1,4 +1,4 @@ | |||||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<packages> | <packages> | ||||
<package id="GlobalHotKey" version="1.1.0" targetFramework="net462" /> | |||||
<package id="GlobalHotKey" version="1.1.0" targetFramework="net472" /> | |||||
</packages> | </packages> |