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