Explorar o código

Reorganize CircleCI config

DarthSim %!s(int64=6) %!d(string=hai) anos
pai
achega
b734bdc6f4
Modificáronse 1 ficheiros con 38 adicións e 33 borrados
  1. 38 33
      .circleci/config.yml

+ 38 - 33
.circleci/config.yml

@@ -65,6 +65,32 @@ workflows:
           go_version: "1.10"
           vips_version: "8.5"
 
+executors:
+  imgproxy:
+    docker:
+      - image: "darthsim/imgproxy-circleci:latest"
+    working_directory: /go/src/imgproxy
+    parameters:
+      vips_version:
+        type: string
+    environment:
+      BASH_ENV: "/root/.bashrc"
+      LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:/root/vips/<< parameters.vips_version >>/lib"
+      PKG_CONFIG_PATH: "$PKG_CONFIG_PATH:/root/vips/<< parameters.vips_version >>/lib/pkgconfig"
+
+commands:
+  install_go:
+    parameters:
+      go_version:
+        type: string
+    steps:
+      - run: |
+          gvm install go<< parameters.go_version >> -B
+          gvm use go<< parameters.go_version >> --default
+          echo 'export GOPATH=/go' >> $BASH_ENV
+          echo 'export PATH="$PATH:$(go env GOPATH)/bin"' >> $BASH_ENV
+          echo 'export CGO_LDFLAGS_ALLOW="-s|-w"' >> $BASH_ENV
+
 jobs:
   checkout_code:
     docker:
@@ -78,53 +104,32 @@ jobs:
           paths: [.]
 
   lint:
-    docker:
-      - image: "darthsim/imgproxy-circleci:latest"
-    working_directory: /go/src/imgproxy
-    environment:
-      BASH_ENV: "/root/.bashrc"
+    executor: imgproxy
     parameters:
       go_version:
         type: string
-      vips_version:
-        type: string
     steps:
       - attach_workspace:
           at: .
+      - install_go:
+          go_version: << parameters.go_version >>
       - run:
-          name: Build imgproxy
-          command: |
-            gvm install go<< parameters.go_version >> -B
-            gvm use go<< parameters.go_version >>
-            export GOPATH=/go
-            export PATH="$PATH:$(go env GOPATH)/bin"
-            export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/vips/<< parameters.vips_version >>/lib
-            export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/root/vips/<< parameters.vips_version >>/lib/pkgconfig
-            export CGO_LDFLAGS_ALLOW="-s|-w"
-            curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.16.0
-            golangci-lint run .
+          name: Install golangci-lint
+          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
+      - run:
+          name: Lint imgproxy
+          command: golangci-lint run .
 
   build:
-    docker:
-      - image: "darthsim/imgproxy-circleci:latest"
-    working_directory: /go/src/imgproxy
-    environment:
-      BASH_ENV: "/root/.bashrc"
+    executor: imgproxy
     parameters:
       go_version:
         type: string
-      vips_version:
-        type: string
     steps:
       - attach_workspace:
           at: .
+      - install_go:
+        go_version: << parameters.go_version >>
       - run:
           name: Build imgproxy
-          command: |
-            gvm install go<< parameters.go_version >> -B
-            gvm use go<< parameters.go_version >>
-            export GOPATH=/go
-            export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/vips/<< parameters.vips_version >>/lib
-            export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/root/vips/<< parameters.vips_version >>/lib/pkgconfig
-            export CGO_LDFLAGS_ALLOW="-s|-w"
-            go test -v
+          command: go test -v