pipeline.yaml

---
resource_types:
  - name: pull-request
    type: docker-image
    source:
      repository: jtarchie/pr

resources:
  - name: delta-pr
    type: pull-request
    webhook_token: 75a10e10467041e38ba4e98e08e42617
    source:
      repo: eventmobi/delta
      access_token: {{github_access_token}}
      private_key: {{github_private_key}}
      uri: [email protected]:EventMobi/delta.git

  - name: delta-master
    type: git
    webhook_token: c9f160ebbb4a4d75b092dca3de9565e3
    source:
      uri: [email protected]:EventMobi/delta.git
      branch: master
      private_key: {{github_private_key}}

  - name: docker-image
    type: docker-image
    source:
      repository: quay.io/eventmobi/delta_image
      tag: latest
      username: {{dockerhub_username}}
      password: {{dockerhub_password}}

jobs:
  # PR pipeline
  - name: initial-test-pr
    plan:
      - get: delta-pr
        trigger: true
        version: every

      - task: load-dependencies
        input_mapping: 
          delta: delta-pr
        file: delta-pr/ci/tasks/load_dependencies.yaml

      - task: run-unit-test
        input_mapping: 
          delta: delta-pr
        file: delta-pr/ci/tasks/run_unit_tests.yaml
    on_failure:
      put: delta-pr
      params:
        path: delta-pr
        status: failure

  - name: build-pr
    plan:
      - get: delta-pr
        passed:
        - initial-test-pr
        trigger: true

      - task: load-dependencies
        input_mapping: 
          delta: delta-pr
        file: delta-pr/ci/tasks/load_dependencies.yaml

      - task: build-executables-gen-tag
        input_mapping: 
          delta: delta-pr
        file: delta-pr/ci/tasks/build_executables.yaml

      - task: push-docker
        input_mapping: 
          delta: delta-pr
        file: delta-pr/ci/tasks/push_docker_image.yaml

      - put: docker-image
        params:
          build: delta-image
          tag: delta-image/tag
    on_failure:
      put: delta-pr
      params:
        path: delta-pr
        status: failure


  - name: integration-test-pr
    plan:
      - get: delta-pr
      - get: docker-image
        passed: 
        - build-pr
        trigger: true

      - task: run-docker-image
        input_mapping: 
          delta: delta-pr
        file: delta-pr/ci/tasks/run_docker_image.yaml
        image: docker-image
    on_success:
      put: delta-pr
      params:
        path: delta-pr
        status: success
    on_failure:
      put: delta-pr
      params:
        path: delta-pr
        status: failure

  # Master
  - name: initial-test-master
    plan:
      - get: delta-master
        trigger: true
        version: every

      - task: load-dependencies
        input_mapping: 
          delta: delta-master
        file: delta-master/ci/tasks/load_dependencies.yaml

      - task: run-unit-test
        input_mapping: 
          delta: delta-master
        file: delta-master/ci/tasks/run_unit_tests.yaml
    on_failure:
      put: delta-master
      params:
        path: delta-pr
        status: failure

  - name: build-master
    plan:
      - get: delta-master
        passed:
        - initial-test-master
        trigger: true

      - task: load-dependencies
        input_mapping: 
          delta: delta-master
        file: delta-master/ci/tasks/load_dependencies.yaml

      - task: build-executables-gen-tag
        input_mapping: 
          delta: delta-master
        file: delta-master/ci/tasks/build_executables.yaml

      - task: push-docker
        input_mapping: 
          delta: delta-master
        file: delta-master/ci/tasks/push_docker_image.yaml

      - put: docker-image
        params:
          build: delta-image
          tag: delta-image/tag
    on_failure:
      put: delta-master
      params:
        path: delta-pr
        status: failure

  - name: integration-test-master
    plan:
      - get: delta-master
      - get: docker-image
        passed: 
        - build-master
        trigger: true

      - task: run-docker-image
        input_mapping: 
          delta: delta-master
        file: delta-master/ci/tasks/run_docker_image.yaml
        image: docker-image
    on_success:
      put: delta-master
      params:
        path: delta-pr
        status: success
    on_failure:
      put: delta-master
      params:
        path: delta-pr
        status: failure

build_executanles.yaml

---
platform: linux

image_resource:
  type: docker-image
  source:
    repository: golang
    tag: "1.9"

inputs: 
  - name: delta-with-dep
    path: src/delta

outputs:
  - name: delta-with-exe

run:
  path: sh
  args: 
    - -exc
    - |
      export GOPATH=$PWD
      export PATH=$PATH:$GOPATH/bin
      export CGO_ENABLED=0
      export GOOS=linux

      cd $GOPATH/src/delta/src
      go build -a -installsuffix cgo -o trigger-exe .
      cp trigger-exe $GOPATH/delta-with-exe

      cd $GOPATH/src/delta/src/connector
      go build -a -installsuffix cgo -o connector-exe .
      cp connector-exe $GOPATH/delta-with-exe

      cd $GOPATH/src/delta/src/recipe
      go build -a -installsuffix cgo -o recipe-exe .
      cp recipe-exe $GOPATH/delta-with-exe

      cd $GOPATH/src/delta
      cat tag
      cp tag $GOPATH/delta-with-exe

      cp $GOPATH/src/delta/Dockerfile $GOPATH/delta-with-exe

load_dependencies.yaml

---
platform: linux

image_resource:
  type: docker-image
  source:
    repository: golang
    tag: "1.9"

inputs: 
  - name: delta
    path: src/delta

outputs:
  - name: delta-with-dep

run:
  path: sh
  args: 
    - -exc
    - |
      export GOPATH=$PWD
      export PATH=$PATH:$GOPATH/bin
      go get -u github.com/golang/dep/cmd/dep
      cd $GOPATH/src/delta/src
      dep ensure
      cp -r $GOPATH/src/delta/* $GOPATH/delta-with-dep
      cd $GOPATH/src/delta/
      git describe --tags --always --dirty | tee $GOPATH/delta-with-dep/tag
      ls $GOPATH/delta-with-dep

push_docker_image.yaml

---
platform: linux

image_resource:
  type: docker-image
  source:
    repository: alpine
    tag: "3.6"

inputs: 
  - name: delta-with-exe
    path: delta

outputs:
  - name: delta-image

run:
  path: sh
  args:
    - -exc
    - |
      cd delta
      ls

      cp * ../delta-image

run_unit_tests.yaml

---
platform: linux

image_resource:
  type: docker-image
  source:
    repository: golang
    tag: "1.9"

inputs: 
  - name: delta-with-dep
    path: src/delta

run:
  path: sh
  args: 
    - -exc
    - |
      export GOPATH=$PWD
      export PATH=$PATH:$GOPATH/bin
      cd $GOPATH/src/delta/src/test/
      go test ./...

Dockerfile

FROM alpine:3.6

RUN apk -U add curl
RUN mkdir /app
ADD . /app
WORKDIR /app

results matching ""

    No results matching ""