Git Product home page Git Product logo

environments's Introduction

environments

An automated deployment process for several Libero standard projects, targeting a single VM infrastructure at first, instantiated in multiple environments.

Architecture

deploy.sh logs in into a target VM over SSH to run a deployment command that should be present there. The VM is expected to maintain state across deployments:

  • storing the deployed project revision
  • keeping any non-deployed project around
  • keeping the last used revision of that non-deployed project as the revision to run

By default, deploy.sh uses latest-revision.sh to find out the most recent revision of each project to deploy. A future development is to allow specific versions to be passed in.

Eventually deploy.sh can accept new revisions of some projects passed as an argument, for example by customizing its Travis CI build.

Remote script

The remote-deploy.sh script is checks out a repository like sample-configuration, and executes docker-compose with customized environment variables.

Some of the variables, like secrets, can be put in place by infrastructure. The variables such as the projects revisions should be passed in from here instead.

Every new deployment modifies one or more of the projects revisions, and restart the services in docker-compose.

Keys

keys/ contains SSH private keys to access the servers to deploy on. These keys are encrypted transparently using git-crypt so they should show in plain text after git crypt unlock.

Travis CI can access these keys because it has been added as one of the git-crypt users. Its git-crypt key is stored safely via travis encrypt. All new keys/ items can be added transparently, Travis CI will be able to access them.

Refer to the infrastructure repository documentation on secrets management for details on git-crypt usage.

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.