Git Product home page Git Product logo

champagne-service's Introduction

Champagne

Build License: MIT

UI

Quality Gate Status

Service

Quality Gate Status Coverage

A service that allows you to toast successful deployments. This service will assist a project in managing builds, deployments, promotions to different environments and tracking manual deployment steps.

Documentation

See the docs here: https://kiwiproject.github.io/champagne-service/

champagne-service's People

Contributors

dependabot[bot] avatar chrisrohr avatar sleberknight avatar

Watchers

 avatar

champagne-service's Issues

Create DeploymentExecution model

Fields:

  • id
  • startedAt
  • endedAt
  • status (RUNNING, COMPLETE, FAILED)
  • failureOutput
  • environment
  • List of deploymentIds
  • consolidatedChangeLog
  • percentComplete

Figure out how to fully test the JWT code in the AuthResource

This issue was derived from a TODO in the AuthResource code:

// TODO: When the bundle is added, a cookie is setup in the response, need to figure out how to test
//       that the cookie is being set correctly. Currently response.getCookies() returns an empty map.
//       Probably need to figure out how to access/use the ContainerRequestContext in the test.

Add Build model DAO and database tables

Need the following dao methods:

  • insert (#103)
  • findById
  • findByCommitRefAndComponentIdentifier
  • count (with filters on name and version) (#103)
  • findBuildsByIds
  • getBuilds (with paging and filters on name and version) (#103)

Add Build model

This model will be used to track specific builds of a code distribution that will later be used for deployments and promotions. The model should contain the following attributes:

  • id (Long)
  • createdAt (Instant)
  • released (boolean) Whether the build has been promoted to a non-dev environment
  • repoNamespace (String)
  • repoName (String)
  • commitRef (String)
  • commitUser (String)
  • sourceBranch (String)
  • componentIdentifier (String) e.g. service name or web app name
  • componentVersion (String)
  • distributionLocation (String) e.g. Link to Maven repo download

Create Promotion model

Fields:

  • id
  • createdAt
  • createdBy
  • message
  • releaseTag
  • environment
  • status (PENDING, CONFIRMED, CANCELLED)
  • List of buildIds
  • releasePromotion (boolean)

Add Build REST endpoints

Need the following endpoints:

  • GET /build (list all builds with paging and filtering)
  • POST /build (registers a new build has completed in the system)

Investigate converting models to use Java Records

    Would you want to change some of these to be `record` types, since this service is using Java 17? Doing it now will probably be less pain than later, and we'll learn where the pain points are. I am pretty sure Jackson now supports records, less sure about other things and where those problems might arise. But, if we think records are the way to go in the future, especially for simple types like this, then maybe give them a try. One downside is we lose the builder, unless Lombok has made a builder for records somehow?

Originally posted by @sleberknight in #60 (comment)

Create DeploymentModel

Fields:

  • id
  • buildId
  • promotionId (once we have promotions)
  • createdAt
  • updatedAt
  • deployedAt
  • status (STAGED, IN_PROGRESS, COMPLETE, IGNORED, MANUAL, FAILED)
  • environment

Create Host and component config models

Host

  • id
  • environment_id
  • hostname
  • description

Component

  • id
  • host_id
  • name

We also will need a way to not have to hard code these if systems are using a cloud and hosts would be dynamic.

Add concept of Projects

  • Create Models
  • Create Daos
  • Hook in to existing models and daos
  • Update UI to account for new requirement

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.