config.yml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. version: 2.1
  2. workflows:
  3. version: 2
  4. build:
  5. jobs:
  6. - checkout_code
  7. - lint:
  8. requires:
  9. - checkout_code
  10. go_version: "1.12"
  11. vips_version: "8.7"
  12. - build:
  13. name: go1.12_vips8.7
  14. requires:
  15. - checkout_code
  16. go_version: "1.12"
  17. vips_version: "8.7"
  18. - build:
  19. name: go1.12_vips8.6
  20. requires:
  21. - checkout_code
  22. go_version: "1.12"
  23. vips_version: "8.6"
  24. - build:
  25. name: go1.12_vips8.5
  26. requires:
  27. - checkout_code
  28. go_version: "1.12"
  29. vips_version: "8.5"
  30. - build:
  31. name: go1.12_vips8.4
  32. requires:
  33. - checkout_code
  34. go_version: "1.12"
  35. vips_version: "8.4"
  36. - build:
  37. name: go1.12_vips8.3
  38. requires:
  39. - checkout_code
  40. go_version: "1.12"
  41. vips_version: "8.3"
  42. - build:
  43. name: go1.11_vips8.7
  44. requires:
  45. - checkout_code
  46. go_version: "1.11"
  47. vips_version: "8.7"
  48. - build:
  49. name: go1.11_vips8.6
  50. requires:
  51. - checkout_code
  52. go_version: "1.11"
  53. vips_version: "8.6"
  54. - build:
  55. name: go1.11_vips8.5
  56. requires:
  57. - checkout_code
  58. go_version: "1.11"
  59. vips_version: "8.5"
  60. - build:
  61. name: go1.11_vips8.4
  62. requires:
  63. - checkout_code
  64. go_version: "1.11"
  65. vips_version: "8.4"
  66. - build:
  67. name: go1.11_vips8.3
  68. requires:
  69. - checkout_code
  70. go_version: "1.11"
  71. vips_version: "8.3"
  72. - build:
  73. name: go1.10_vips8.7
  74. requires:
  75. - checkout_code
  76. go_version: "1.10"
  77. vips_version: "8.7"
  78. - build:
  79. name: go1.10_vips8.6
  80. requires:
  81. - checkout_code
  82. go_version: "1.10"
  83. vips_version: "8.6"
  84. - build:
  85. name: go1.10_vips8.5
  86. requires:
  87. - checkout_code
  88. go_version: "1.10"
  89. vips_version: "8.5"
  90. - build:
  91. name: go1.10_vips8.4
  92. requires:
  93. - checkout_code
  94. go_version: "1.10"
  95. vips_version: "8.4"
  96. - build:
  97. name: go1.10_vips8.3
  98. requires:
  99. - checkout_code
  100. go_version: "1.10"
  101. vips_version: "8.3"
  102. - build:
  103. name: go1.10_vips8.7
  104. requires:
  105. - checkout_code
  106. go_version: "1.9"
  107. vips_version: "8.7"
  108. - build:
  109. name: go1.9_vips8.6
  110. requires:
  111. - checkout_code
  112. go_version: "1.9"
  113. vips_version: "8.6"
  114. - build:
  115. name: go1.9_vips8.5
  116. requires:
  117. - checkout_code
  118. go_version: "1.9"
  119. vips_version: "8.5"
  120. - build:
  121. name: go1.9_vips8.4
  122. requires:
  123. - checkout_code
  124. go_version: "1.9"
  125. vips_version: "8.4"
  126. - build:
  127. name: go1.9_vips8.3
  128. requires:
  129. - checkout_code
  130. go_version: "1.9"
  131. vips_version: "8.3"
  132. jobs:
  133. checkout_code:
  134. docker:
  135. - image: circleci/slim-base:latest
  136. working_directory: /go/src/imgproxy
  137. steps:
  138. - checkout:
  139. path: /go/src/imgproxy
  140. - persist_to_workspace:
  141. root: .
  142. paths: [.]
  143. lint:
  144. docker:
  145. - image: "darthsim/imgproxy-circleci:latest"
  146. working_directory: /go/src/imgproxy
  147. environment:
  148. BASH_ENV: "/root/.bashrc"
  149. parameters:
  150. go_version:
  151. type: string
  152. vips_version:
  153. type: string
  154. steps:
  155. - attach_workspace:
  156. at: .
  157. - run:
  158. name: Build imgproxy
  159. command: |
  160. gvm install go<< parameters.go_version >> -B
  161. gvm use go<< parameters.go_version >>
  162. export GOPATH=/go
  163. export PATH="$PATH:$(go env GOPATH)/bin"
  164. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/vips/<< parameters.vips_version >>/lib
  165. export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/root/vips/<< parameters.vips_version >>/lib/pkgconfig
  166. export CGO_LDFLAGS_ALLOW="-s|-w"
  167. curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.16.0
  168. golangci-lint run .
  169. build:
  170. docker:
  171. - image: "darthsim/imgproxy-circleci:latest"
  172. working_directory: /go/src/imgproxy
  173. environment:
  174. BASH_ENV: "/root/.bashrc"
  175. parameters:
  176. go_version:
  177. type: string
  178. vips_version:
  179. type: string
  180. steps:
  181. - attach_workspace:
  182. at: .
  183. - run:
  184. name: Build imgproxy
  185. command: |
  186. gvm install go<< parameters.go_version >> -B
  187. gvm use go<< parameters.go_version >>
  188. export GOPATH=/go
  189. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/vips/<< parameters.vips_version >>/lib
  190. export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/root/vips/<< parameters.vips_version >>/lib/pkgconfig
  191. export CGO_LDFLAGS_ALLOW="-s|-w"
  192. go test -v