Git Product home page Git Product logo

devenv's Introduction

devenv

A set of scripts for configuring a ubuntu machine for development of Cloud Foundry stuff.

Installation

Provision your Ubuntu 20.04 VM, ssh into it, then run this command from your home directory as a non-root user:

bash <(curl -s https://raw.githubusercontent.com/cf-routing/devenv/develop/setup.sh)

Note that this script is not guaranteed to be idempotent. Rather than re-running the scripts, it is recommended that you recreate your workstation VMs regularly to keep up to date.

Automated workstation provisioning

A set of Concourse pipelines are also maintained in this repository for automated workstation provisioning.

Contributing

Please commit small improvements directly to develop.

If you a want others to weigh in first, open a pull request.

Goals:

  • One devenv for the whole networking program
    We want it to be easy to rotate among teams within the program. Having a common development environment should reduce friction when rotating or handling interrupts.
  • Dev machines as cattle, not pets
    We want it to be easy to create a new environment, and easy to let go of existing ones.

Non-goals:

  • Idempotency
    We don't care if the setup scripts are idempotent because we are prioritizing making it easy to throw away machines and create new ones.
  • Supporting users outside of the Networking Program
    We don't want to get bogged down over engineering this thing and trying to meet everyone's needs. If other teams in the larger CF community find this userful, they can fork it.

devenv's People

Contributors

ameowlia avatar astrieanna avatar christianang avatar flawedmatrix avatar jamiemonserrate avatar jenspinney avatar jrussett avatar kkburr avatar mcwumbly avatar mike1808 avatar ndhanushkodi avatar pivotalgeorge avatar rosenhouse avatar routing-ci avatar tcdowney avatar tylerschultz avatar xanderstrike avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

devenv's Issues

Git duet doesn't self-setup properly

Pairs have to run git init to get the hooks properly set up

We already visit every repo and run git init here but it doesn't work for some reason. Maybe because it's doing it as root, or maybe the shell needs to be reloaded first? I'm not sure.

Update image more frequently in pipeline; workstations weekly or on-demand

I think we could improve the pipeline by making the following changes:

  1. Add a trigger to the devenv resource in the build-canary-vm job so it triggers on changes to the repo and publishes a new image
  2. Remove the time-based trigger on the build-canary-vm job
  3. Remove the image-based triggers on the other workstation jobs
  4. Add time-based triggers to all workstation jobs.
  5. Add a destroy-canary-vm job that triggers after a successful build-canary-vm

This would make it so that:

  1. The image is updated any time there is a change to this repo
  2. Workstations an be re-deployed any time by manual trigger with that image which is closer to being in sync w/ the repo
  3. The canary vm would exist only for test purposes (but the destroy job could be paused if it needs inspection)

Thoughts?

Ctrl-R is broken

I don't know what is causing this, but anyone trying Ctrl-R gets this error:

Command 'fzf' not found, but can be installed with:    

apt install fzf

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.