Giter VIP home page Giter VIP logo

gofrolist / asf-platform Goto Github PK

View Code? Open in Web Editor NEW

This project forked from griddynamics/asf-platform

0.0 3.0 1.0 1.46 MB

ASF Platform – a complete working installation of CI/CD infrastructure – working and ready to use. Bundled with sample “reference projects” source code but ready for other similar projects as well.

License: Apache License 2.0

Ruby 41.06% CSS 0.11% HTML 41.76% JavaScript 0.06% Groovy 15.20% Python 1.81%

asf-platform's Introduction

Agile Software Factory

Install

Getting Started

Overview

Agile Software Factory is the foundation for an efficient, scalable, and reliable development and release process. By modeling processes after a conveyor belt or pipeline, ASF gives structure to your software development process. This allows engineering teams to focus on implementing functionality instead of fighting with operational issues.

Architecture

Agile Software Factory consists of nine main components:

  • Jenkins - build, verify code, run code analysis and deploy artifacts into repository
  • Gerrit - code review tool and source code repository manager
  • LDAP - centralized store of user accounts information for authentication on other components
  • JIRA - project management software, aggregates statuses for all other components
  • Nexus - artifact repository, stores successfully built artifacts from Jenkins
  • Sonar - collects and analyze code metrics
  • SeleniumGrid - run integration tests on cluster
  • Docker Registry - self-hosted docker images repository
  • Docker VM - instance for deploying CI applications for integration testing

Component infrastructure

All components of ASF integrated with each other and provide fully working CI pipeline out of the box. List of integrations:

  • Authentication with LDAP - using LDAP as main authentication provider for all services
  • Automated Jenkins code review - Automated build and marking verified -1/+1 each review
  • Gerrit review status in JIRA - show reviews in following JIRA issues by key in the commit message
  • Jenkins job status in JIRA - show job status in following JIRA issues by key in the checkout commit message
  • Email notification - notify about builds, reviews and JIRA issues status

CI Workflow

ASF provides CI pipelines for demo Java application. Currently ASF supports 3 main pipelines:

  • Dev Review Pipeline

    For each new opened code review Jenkins checkout code, build it and run unit tests. If tests passed, Jenkins mark change Verified +1, else -1.

    Dev Review Pipeline

  • Dev Build Pipeline

    Each time change submitted to dev branch, Jenkins checkout latest dev revision and start running full CI pipeline - build code, run unit and functional tests, then upload artifact to Nexus and build docker image based on artifact from Nexus. After docker image deploys to DockerVM and run integration testing against it.

    Dev Build Pipeline

  • Feature Branch Review Pipeline

    Automatically start fb-build-review Jenkins job each time new Gerrit change for fb-* branch created. Works like Dev Review pipeline.

    Dev Review Pipeline

  • Feature Branch Build Pipeline

    Build and run fuctional tests for each commit merged into feature branch. By default works only branches with fb- prefix, starts manually and doesn't post any information to JIRA.

    Dev Build Pipeline

Requirements

Agile Software Factory requires minimum nine m3.medium AWS instances for infrastructure and one m3.large for Jenkins slave. Estimated costs of infrastructure is $/month. Currently ASF can be launched only in us-east AWS region.

List of required images:

Name Image AMI
CentOS 6.3 x64 us-east-1/ami-b028aad8
CoreOS-beta-557.2.0 us-east-1/ami-5e9bd836
asf-jenkins-ubuntu-slave us-east-1/ami-aacbe6c2

All instances required public ips, launching in VPC currently not supported.

Demo application

As a demo application Agile Software factory uses Spring Petclinic with additional integration tests and deploy scripts. Checkout ASF-Webapp-Demo repo for more info.

User Guide

Step-by-step Setup Guide

Demo Script

To show end-to-end working development pipeline we recommend to use our demo scenario, that show all features and integrations of Agile Software Factory.

Known Issues

License and Authors

Authors:

#
# Copyright 2015, Copyright (c) 2015 Grid Dynamics International, Inc. All Rights Reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

asf-platform's People

Contributors

alekseiko avatar m-zg avatar yurinnick avatar

Watchers

 avatar  avatar  avatar

Forkers

samueladewole

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.