Coder Social home page Coder Social logo

yemisie / cicdonaws-example-projects Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lock128/cicdonaws-example-projects

0.0 0.0 0.0 4.63 MB

An example implementation for a CI/CD pipeline implementedin different CI/CD tools like GithubActions, CodeCatalyst Workflows, CircleCI, Jenkins, Gitlab, ...

License: Apache License 2.0

JavaScript 36.69% TypeScript 63.31%

cicdonaws-example-projects's Introduction

Implementing a CI/CD pipeline in different CI/CD systems

As part of this project we are aiming to implement a simple, end to end CI/CD pipelines that contains all of the steps that follow "best practices".

With the project, we want to be able to give Builders around the globe the possibility to understand the difference between certain CI/CD tools while at the same time following best practices.

Generic pipeline overview

A generic pipeline for a simple service or microservice looks like this: Generic CI/CD pipeline This generic overview has three different deployment environments: development, pre-production and production.

We assume "trunk based" development which means that developers will implement changes on feature & hotfix branches and this pipeline will be executed from the "main" branch where, on the "main" branch, a deployment will automatically happen up to "production".

On "PR-creation" or also on "feature branch update", only specific steps of the pipeline should be executed (to be discussed). The idea behind this is to give developers a quick feedback, even before merging their stuff to the "main" branch (shift-left approach for DevSecOps).

Technology choices

Infrastructure as Code

We are going to use AWS CDK for Infrastructure as Code (IaC). The code will be written in Typescript.

Application Code

We will use Projen for generating the baseline code. The backend code (lambda functions) will be written, where required, in Typescript. The front-end code will be using Flutter - to allow cross-platform development - which means Dart.

Pipeline Code

The code will be written in Typescript if it allows a language. Other than that we are dependend on the requirements of the CI/CD tool.

CI/CD Implementation

An example implementation for a CI/CD pipeline implemented in different CI/CD tools like GithubActions, CodeCatalyst Workflows, CircleCI, Jenkins, Gitlab, ...

This is what we are aiming to implement - red steps are still under discussion: Implementation pipeline

AWS Architecture for example project

This architecture should be deployed and implemented for each environment. As it is serverless we do not expect much costs to be created due to this. AWS Architecture The data shown and the UI can be defined by the one implementing this. The lambda function painted here is just an example - it could potentially generate an S3 PreSigned URL to download the "most up to date" version of the Flutter APK.

cicdonaws-example-projects's People

Contributors

lock128 avatar

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.