Git Product home page Git Product logo

version-control-tools's Introduction

Mozilla Version Control Tools

This repository contains tools, extensions, hooks, etc to support version control at Mozilla.

Most documentation exists in the docs/ directory. It can be viewed online on Read the Docs.

Contributing

Testing

To create a test environment and run tests, you should use the ./run script at the root of the repository. This script wraps common docker-compose commands to provide better ergonomics and good testing defaults.

The test runner and all it's dependencies are contained in a Docker image. The state of your version-control-tools checkout is mounted into the container built from that image and tests are run inside the contianer using the source on your host's filesystem. To do this, a .env file must be created to tell the container about which user on the host system is running the tests.

You can run the following command to create a .env file:

  ./run env > .env

Now you can run the tests via:

  ./run tests path/to/test --with-hg=5.3.2

Ansible-to-Docker Cluster

The configuration of the production server is managed by the Ansible configs in ansible/. To test these configs and much of the code that depends on them, we have a custom Docker image build process which applies the Ansible roles to Docker images and creates a mock cluster of Docker containers that is mostly identical to the production hosts of hg.mozilla.org.

Running these tests is slow and uses a lot of CPU resources. It is recommended to use -j to limit the number of concurrently running tests. If you don't want to run the Ansible-to-Docker cluster tests, you can use the --no-docker flag when running the tests.

version-control-tools's People

Contributors

bhearsum avatar bsmedberg avatar callek avatar cgsheeh avatar darkwing avatar dividehex avatar djc avatar djmitche avatar dminor avatar ehsan avatar glandium avatar globau avatar hotsphink avatar hwine avatar indygreg avatar jdm avatar jlebar avatar kwierso avatar luser avatar mars-f avatar mikeconley avatar pike avatar robarnold avatar smacleod avatar sylvestre avatar theres-waldo avatar tomprince avatar twobraids avatar zalun avatar zzzeid 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.