config.yml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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.11_vips8.7
  32. requires:
  33. - checkout_code
  34. go_version: "1.11"
  35. vips_version: "8.7"
  36. - build:
  37. name: go1.11_vips8.6
  38. requires:
  39. - checkout_code
  40. go_version: "1.11"
  41. vips_version: "8.6"
  42. - build:
  43. name: go1.11_vips8.5
  44. requires:
  45. - checkout_code
  46. go_version: "1.11"
  47. vips_version: "8.5"
  48. - build:
  49. name: go1.10_vips8.7
  50. requires:
  51. - checkout_code
  52. go_version: "1.10"
  53. vips_version: "8.7"
  54. - build:
  55. name: go1.10_vips8.6
  56. requires:
  57. - checkout_code
  58. go_version: "1.10"
  59. vips_version: "8.6"
  60. - build:
  61. name: go1.10_vips8.5
  62. requires:
  63. - checkout_code
  64. go_version: "1.10"
  65. vips_version: "8.5"
  66. executors:
  67. imgproxy:
  68. docker:
  69. - image: "darthsim/imgproxy-circleci:latest"
  70. working_directory: /go/src/imgproxy
  71. parameters:
  72. vips_version:
  73. type: string
  74. environment:
  75. BASH_ENV: "/root/.bashrc"
  76. LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:/root/vips/<< parameters.vips_version >>/lib"
  77. PKG_CONFIG_PATH: "$PKG_CONFIG_PATH:/root/vips/<< parameters.vips_version >>/lib/pkgconfig"
  78. commands:
  79. install_go:
  80. parameters:
  81. go_version:
  82. type: string
  83. steps:
  84. - run: |
  85. gvm install go<< parameters.go_version >> -B
  86. gvm use go<< parameters.go_version >> --default
  87. echo 'export GOPATH=/go' >> $BASH_ENV
  88. echo 'export PATH="$PATH:$(go env GOPATH)/bin"' >> $BASH_ENV
  89. echo 'export CGO_LDFLAGS_ALLOW="-s|-w"' >> $BASH_ENV
  90. jobs:
  91. checkout_code:
  92. docker:
  93. - image: circleci/slim-base:latest
  94. working_directory: /go/src/imgproxy
  95. steps:
  96. - checkout:
  97. path: /go/src/imgproxy
  98. - persist_to_workspace:
  99. root: .
  100. paths: [.]
  101. lint:
  102. executor: imgproxy
  103. parameters:
  104. go_version:
  105. type: string
  106. steps:
  107. - attach_workspace:
  108. at: .
  109. - install_go:
  110. go_version: << parameters.go_version >>
  111. - run:
  112. name: Install golangci-lint
  113. command: curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | BINARY=golangci-lint sh -s -- -b $(go env GOPATH)/bin v1.16.0
  114. - run:
  115. name: Lint imgproxy
  116. command: golangci-lint run .
  117. build:
  118. executor: imgproxy
  119. parameters:
  120. go_version:
  121. type: string
  122. steps:
  123. - attach_workspace:
  124. at: .
  125. - install_go:
  126. go_version: << parameters.go_version >>
  127. - run:
  128. name: Build imgproxy
  129. command: go test -v