Giter Club home page Giter Club logo

serverless-plugin-cicd's Introduction

serverless-plugin-cicd

serverless License

Serverless plugin for creating a CI/CD pipeline that watches a GitHub repo.

About The Black Tux

The Black Tux is reinventing the formalwear rental industry so guys can show up at their best on the days that matter most. The company designs and manufactures modern rental suits and tuxedos that actually fit—made of 100% wool, ordered online or in one of our showrooms, and delivered for free. Using a combination of machine learning, tailor-trained fit specialists, and industry-leading customer service, The Black Tux guarantees a perfect fit every time.

To support this elevated customer experience we rely on lots of technology. From time to time we release things we build to the open source community when we feel they might be useful by others as well, and of course don't include anything proprietary.

Getting Started

Prerequisites

Make sure you have the following installed before starting:

Installation

First install the package:

npm install serverless-plugin-cicd --save

Then add the plugin to your serverless.yml file:

plugins:
  - serverless-plugin-cicd

There are a number of parameters that you then can use:

custom:
  cicd:
    image: 'the aws codebuild image'
    branch: 'the git branch you want to watch'
    owner: 'the GitHub repository owner where your project can be found'
    repository: 'the GitHub repository where your project can be found'
    githubtoken: 'the GitHub OAuth token if this project is private'
    excludestages:
      - '[name of a stage to exclude]'
      - '[another stage name to exclude]'

Or you can also store some parameters per stage by using the following (let us know if more should be per-stage):

custom:
  staging:
    branch: 'the git branch you want to watch for the stage called staging'
  prod:
    branch: 'a different branch you want to watch for the stage called prod'

Some details on these parameters

Parameter Info Default More Information
image (node) If the runtime is nodeJS aws/codebuild/nodejs:6.3.1 Lookup other image identifiers
image (python) If the runtime is python aws/codebuild/python:3.5.2 Lookup other image identifiers
image (other) If the runtime is something else aws/codebuild/ubuntu-base:14.04 Lookup other image identifiers
branch The git branch CodePipeline monitors master More on how CodePipeline starts
owner The owner of the GitHub repository blank Required as no default
repository The GitHub repository CodePipeline monitors The name of your service More on how CodePipeline starts
githubtoken The GitHub OAuth token for private repos blank How to get a token
excludestages Stages you don't want CICD for blank Serverless stages

Deploying


The plugin will be packaged with the lambda when deployed as normal using Serverless:

serverless deploy

Support

All support is conducted through GitHub issues. This is released basically "as is" but we will answer questions as we can.

Contributing

Please open a GitHub issue before contributing code changes.

serverless-plugin-cicd's People

Contributors

kevindiamond avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

serverless-plugin-cicd's Issues

Interested in Contributions?

Hello,
I've been using your plugin for a bit, and have forked it to make some changes. I'm wondering if you are still maintaining this and are interested in contributions, or if I should create a new package.
Things I'm planning to add.

  • Support for Code Build env vars (added).
  • Add ssm and secretsmanager permissions (added).
  • Base CodeBuild IAM permissions or ability to override.
  • Config to run build container in VPC.
  • Updated base CodeBuild images.

Thanks for your work on this. It's saved me a tone of time getting pipelines up quickly. :-)

--Jeff

The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [ServerlessDeploymentBucket] in the Resources block of the template

Hi, there, this is an interesting plugin, however I do wonder if it's still used/maintained...

I was just trying it out and I've got this error:
The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [ServerlessDeploymentBucket] in the Resources block of the template

we are using pretty standard yaml templating:

provider:
  deploymentBucket:
    name: our-bucket
  name: aws
  runtime: nodejs8.10

where that config needs to move or change?

I am happy to fix the plugin code if you point me in the right direction.

Thanks.

[Update]
I've managed to get it working by removing this section

ArtifactStore: {
in the cloudformation template.

I guess serverless framework evolved meanwhile and that code overrides the main settings?

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.