ci/pipeline.yml
# control-fpga-via-raspi-and-webserver pipeline.yml
#------------------------------------------------------------------------------------------
jobs:
#**********************************************
- name: job-readme-github-pages
#**********************************************
plan:
# GET REPO FROM GITHUB
- get: control-fpga-via-raspi-and-webserver
trigger: true
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: STARTED job-readme-github-pages in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "pending", description: "STARTED job-readme-github-pages in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
# RUN TASK IN REPO USING ALPINE DOCKER IMAGE
- task: task-readme-github-pages
file: control-fpga-via-raspi-and-webserver/ci/tasks/task-readme-github-pages.yml
# TASK SUCCESS
on_success:
do:
# PUSH NEW REPO TO GITHUB
- put: control-fpga-via-raspi-and-webserver
params:
repository: control-fpga-via-raspi-and-webserver-updated
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: PASSED job-readme-github-pages in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "success", description: "PASSED job-readme-github-pages in concourse ci", commit: "control-fpga-via-raspi-and-webserver" }
# TASK FAILURE
on_failure:
do:
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: FAILED job-readme-github-pages in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "failure", description: "FAILED job-readme-github-pages in concourse ci", commit: "control-fpga-via-raspi-and-webserver" }
#**********************************************
- name: job-unit-tests
#**********************************************
plan:
# GET REPO FROM GITHUB
- get: control-fpga-via-raspi-and-webserver
trigger: true
passed: [job-readme-github-pages]
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: STARTED job-unit-tests in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "pending", description: "STARTED job-unit-tests in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
# RUN TASK IN REPO USING ALPINE DOCKER IMAGE
- task: task-unit-tests
file: control-fpga-via-raspi-and-webserver/ci/tasks/task-unit-tests.yml
# TASK SUCCESS
on_success:
do:
# PUSH NEW REPO TO GITHUB
- put: control-fpga-via-raspi-and-webserver
params:
repository: control-fpga-via-raspi-and-webserver
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text_file: coverage-results/test_coverage.txt
text: |
From control-fpga-via-raspi-and-webserver: PASSED job-unit-tests in concourse ci.
$TEXT_FILE_CONTENT
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "success", description: "PASSED job-unit-tests in concourse ci", commit: "control-fpga-via-raspi-and-webserver" }
# TASK FAILURE
on_failure:
do:
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: FAILED job-unit-tests in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "failure", description: "FAILED job-unit-tests in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
#**********************************************
- name: job-build-push
#**********************************************
plan:
# GET REPO FROM GITHUB
- get: control-fpga-via-raspi-and-webserver
trigger: true
passed: [job-unit-tests]
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: STARTED job-build-push in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "pending", description: "STARTED job-build-push in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
# RUN TASK IN REPO USING ALPINE DOCKER IMAGE
- task: task-build-push
file: control-fpga-via-raspi-and-webserver/ci/tasks/task-build-push.yml
# PUSH DOCKER IMAGE TO DOCKERHUB
- put: resource-dump-to-dockerhub
params:
build: "dist"
# TASK SUCCESS
on_success:
do:
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: PASSED job-build-push in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "pending", description: "PASSED job-build-push in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
# TASK FAILURE
on_failure:
do:
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: FAILED job-build-push in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "failure", description: "FAILED job-build-push in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
#**********************************************
- name: job-deploy
#**********************************************
plan:
# GET REPO FROM GITHUB
- get: control-fpga-via-raspi-and-webserver
trigger: true
passed: [job-build-push]
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: STARTED job-deploy in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "pending", description: "STARTED job-deploy in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
# RUN TASK IN REPO USING ALPINE DOCKER IMAGE
- task: task-deploy
file: control-fpga-via-raspi-and-webserver/ci/tasks/task-deploy.yml
# TASK SUCCESS
on_success:
do:
# DEPLOY DOCKER IMAGE TO DOCKER HOST
- put: resource-deploy-docker
params:
DOCKER_HOST_IP: '192.168.20.118'
DOCKER_HOST_PORT: '22'
DOCKER_HOST_USER: 'jeff'
DOCKER_HOST_RUN_PRIVILEGED_MODE: 'true'
DOCKER_HOST_SSH_PRIVATE_KEY_FILE: {{raspi_4b_docker_host_ssh_private_key}}
DOCKER_IMAGE_TO_DEPLOY: 'jeffdecola/control-fpga-via-raspi-and-webserver'
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: PASSED job-deploy in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "success", description: "PASSED job-deploy in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
# TASK FAILURE
on_failure:
do:
# SEND SLACK ALERT
- put: resource-slack-alert
params:
channel: '#jeff-builds'
text: "From control-fpga-via-raspi-and-webserver: FAILED job-deploy in concourse ci."
# SEND GITHUB STATUS
- put: resource-repo-status
params: { state: "failure", description: "FAILED job-deploy in concourse ci.", commit: "control-fpga-via-raspi-and-webserver" }
#------------------------------------------------------------------------------------------
resource_types:
- name: deploy-docker
type: docker-image
source:
repository: jeffdecola/concourse-deploy-docker-resource
tag: latest
- name: slack-notification
type: docker-image
source:
repository: cfcommunity/slack-notification-resource
tag: latest
- name: github-status
type: docker-image
source:
repository: jeffdecola/github-status-resource-clone
tag: v0.0.2
#------------------------------------------------------------------------------------------
resources:
- name: control-fpga-via-raspi-and-webserver
type: git
icon: github
source:
#uri: https://github.com/jeffdecola/control-fpga-via-raspi-and-webserver
uri: git@github.com:jeffdecola/control-fpga-via-raspi-and-webserver.git
branch: master
private_key: ((concourse_git_private_key))
- name: resource-dump-to-dockerhub
type: docker-image
icon: docker
source:
repository: jeffdecola/control-fpga-via-raspi-and-webserver
tag: latest
username: jeffdecola
password: ((dockerhub_password))
- name: resource-deploy-docker
type: deploy-docker
icon: docker
source:
username: jeffdecola
password: ((dockerhub_password))
- name: resource-slack-alert
type: slack-notification
icon: slack
source:
url: ((slack_url))
- name: resource-repo-status
type: github-status
icon: github
source:
repository: jeffdecola/control-fpga-via-raspi-and-webserver
access_token: ((repo_github_token))
branch: master