azure-pipelines.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. trigger:
  2. batch: true
  3. branches:
  4. include:
  5. - master
  6. - dev*
  7. pr:
  8. - master
  9. - dev*
  10. jobs:
  11. - template: azure-pipelines.template.yml
  12. parameters:
  13. name: linux
  14. vmImage: 'ubuntu-16.04'
  15. - template: azure-pipelines.template.yml
  16. parameters:
  17. name: windows
  18. vmImage: 'vs2017-win2016'
  19. - template: azure-pipelines.template.yml
  20. parameters:
  21. name: macos
  22. vmImage: 'macOS-10.13'
  23. - job: linux_coverage
  24. dependsOn: linux
  25. condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
  26. timeoutInMinutes: 30
  27. pool:
  28. vmImage: 'Ubuntu 16.04'
  29. variables:
  30. CODECOV_TOKEN: '$(coverage.token)'
  31. steps:
  32. - checkout: self
  33. - task: GoTool@0
  34. inputs:
  35. version: '1.12'
  36. - script: |
  37. bash ./testing/coverage/coverall
  38. workingDirectory: '$(Build.SourcesDirectory)'
  39. displayName: 'Coverage'
  40. - job: make_release
  41. dependsOn: linux
  42. condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
  43. timeoutInMinutes: 60
  44. pool:
  45. vmImage: 'Ubuntu 16.04'
  46. variables:
  47. GOPATH: '$(system.defaultWorkingDirectory)/gopath'
  48. BAZEL_VER: '0.23.0'
  49. steps:
  50. - checkout: self
  51. - task: GoTool@0
  52. inputs:
  53. version: '1.12'
  54. - script: |
  55. mkdir triggersrc
  56. ls -I "triggersrc" | xargs cp -rf -t triggersrc
  57. mkdir gopath
  58. displayName: Prepare Environment
  59. workingDirectory: '$(system.defaultWorkingDirectory)'
  60. - script: |
  61. sudo apt-get -y update
  62. sudo apt-get -y install jq git file pkg-config zip g++ zlib1g-dev unzip python openssl tree
  63. displayName: Apt Install
  64. - script: |
  65. go version
  66. unset GOPATH
  67. mkdir ./src
  68. mkdir ./src/v2ray.com
  69. ln -s $(pwd)/../triggersrc ./src/v2ray.com/core
  70. go get -v -t -d ./src/v2ray.com/core/...
  71. tree
  72. workingDirectory: '$(GOPATH)'
  73. displayName: 'Fetch sources'
  74. - script: |
  75. mkdir release
  76. cd src
  77. zip -9 -r ../release/src_all.zip * -x '*.git*'
  78. workingDirectory: '$(GOPATH)'
  79. displayName: 'Dump sources'
  80. - script: |
  81. curl -L -o bazel-installer.sh https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VER}/bazel-${BAZEL_VER}-installer-linux-x86_64.sh
  82. chmod +x bazel-installer.sh
  83. ./bazel-installer.sh --user
  84. workingDirectory: '$(GOPATH)'
  85. displayName: 'Install Bazel'
  86. - script: |
  87. cd ./src/v2ray.com/core
  88. $HOME/bin/bazel build --action_env=GOPATH=$GOPATH --action_env=PATH=$PATH --action_env=GPG_PASS=${SIGN_KEY_PASS} --action_env=SPWD=$PWD --action_env=GOCACHE=$(go env GOCACHE) --spawn_strategy local //release:all
  89. workingDirectory: '$(GOPATH)'
  90. displayName: 'Build Binaries'
  91. - script: |
  92. cp ./src/v2ray.com/core/bazel-bin/release/*.zip ./release/
  93. workingDirectory: '$(GOPATH)'
  94. displayName: 'Dump Binaries'
  95. - task: GitHubRelease@0
  96. inputs:
  97. gitHubConnection: v2flybleedingedge
  98. repositoryName: v2fly/V2FlyBleedingEdgeBinary
  99. target: '580bd35a4b8a35b672ee7c27b519bf74f4953002'
  100. tagSource: 'manual'
  101. tag: '$(Build.SourceVersion)'
  102. assets: '$(GOPATH)/release/*'
  103. isPreRelease: true
  104. releaseNotesSource: 'input'
  105. releaseNotes: 'Do not use this release unless you understand what you are doing.'
  106. displayName: 'Generate Github Bleeding Edge Release'