JeffDeCola/my-go-examples

View on GitHub
ci/pipeline.yml

Summary

Maintainability
Test Coverage
# my-go-examples pipeline.yml

#------------------------------------------------------------------------------------------
jobs:

#**********************************************
- name: job-readme-github-pages
#**********************************************
  plan:

    # GET REPO FROM GITHUB
    - get: my-go-examples
      trigger: true
    # SEND SLACK ALERT  
    - put: resource-slack-alert
      params:
        channel: '#jeff-builds'
        text: "From my-go-examples: 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: "my-go-examples" }    
    
    # RUN TASK IN REPO USING ALPINE DOCKER IMAGE
    - task: task-readme-github-pages
      file: my-go-examples/ci/tasks/task-readme-github-pages.yml
      
      # TASK SUCCESS
      on_success:
        do:
          # PUSH NEW REPO TO GITHUB
          - put: my-go-examples
            params:
              repository: my-go-examples-updated  
          # SEND SLACK ALERT  
          - put: resource-slack-alert
            params:
              channel: '#jeff-builds'
              text: "From my-go-examples: 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: "my-go-examples" }
      
      # TASK FAILURE   
      on_failure:
        do:
          # SEND SLACK ALERT  
          - put: resource-slack-alert
            params:
              channel: '#jeff-builds'
              text: "From my-go-examples: 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: "my-go-examples" }

#**********************************************
- name: job-unit-tests
#**********************************************
  plan:

    # GET REPO FROM GITHUB
    - get: my-go-examples
      trigger: true
      passed: [job-readme-github-pages]
    # SEND SLACK ALERT  
    - put: resource-slack-alert
      params:
        channel: '#jeff-builds'
        text: "From my-go-examples: 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: "my-go-examples" }

    # RUN TASK IN REPO USING ALPINE DOCKER IMAGE 
    - task: task-unit-tests
      file: my-go-examples/ci/tasks/task-unit-tests.yml

      # TASK SUCCESS
      on_success:
        do:
          # PUSH NEW REPO TO GITHUB
          - put: my-go-examples
            params:
              repository: my-go-examples  
          # SEND SLACK ALERT  
          - put: resource-slack-alert
            params:
              channel: '#jeff-builds'
              text_file: coverage-results/test_coverage.txt
              text: |
                From my-go-examples: 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: "my-go-examples" }
      
      # TASK FAILURE
      on_failure:
        do:
          # SEND SLACK ALERT  
          - put: resource-slack-alert
            params:
              channel: '#jeff-builds'
              text: "From my-go-examples: 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: "my-go-examples" }

#------------------------------------------------------------------------------------------
resource_types:

  - 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: my-go-examples
    type: git
    icon: github
    source:
      #uri: https://github.com/jeffdecola/my-go-examples
      uri: git@github.com:jeffdecola/my-go-examples.git
      branch: master
      private_key: ((concourse_git_private_key))

  - 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/my-go-examples 
      access_token: ((repo_github_token))
      branch: master