Giter VIP home page Giter VIP logo

a-deploy's Introduction

A-Deploy

This repository provides two Jenkins pipeline custome steps for provisioning and deploying an AMI to a AWS auto scaling group and another one to perform rollbacks. Rolling updates are performed by the a-roller script.

Dependencies

The steps assume that:

  • Packer is installed at /usr/bin/packer on the agent.
  • AWS credentials are provided by the pipeline as environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  • node.js 8 is installed on the agent

Usage

Include library

@Library('a-deploy') _

Use awsDeploy step

stage('Deploy') {
  steps {
    awsDeploy 'service-name', 'aws-region', 'auto-scaling-group-name'
  }
}

This will install the a-roller npm package, compress the node.js code of the of the workspace as a tar.gz file and provision an AMI called service-name $build-number with packer and ansible. Once the AMI is ready, the roller script will be executed to update the auto scaling group with the name auto-scaling-group-name in the region aws-region with the newly generated AMI.

Use awsRollback step

stage('Deploy') {
  steps {
    awsRollback 'service-name', 'aws-region', 'auto-scaling-group-name', 'build-number'
  }
}

This will install the a-roller npm package and execute the roller script to update the auto scaling group with the AMI generated by the build number build-number.

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.