# Contributing guide - Work in a Docker container: ```sh docker run \ `# run an interactive pseudo-TTY` \ -it \ `# remove the container once you leave it` \ --rm \ `# share the current directory` \ -v $(pwd):/workspace \ `# share your SSH configuration` \ -v $HOME/.ssh:/home/code/.ssh:ro \ `# share your SSH agent` \ -v $SSH_AUTH_SOCK:/ssh-agent:ro \ `# let container know where is mapped the SSH agent` \ -e SSH_AUTH_SOCK=/ssh-agent \ `# container image to use` \ registry.ubicast.net/sys/envsetup \ `# executable to run` \ bash ``` - Install development requirements: ```sh make requirements-dev ``` - Quickly check that your "code" is compliant: ```sh make lint ``` - Run Ansible tests: ```sh make test # show debug logs DEBUG=1 make test # do not destroy tests containers KEEP=1 make test ``` - If you add/modify a role, please write relevants tests in `molecule/default/tests`. - Run packer validation: ```sh # validate `packer/base.yml` file make image-validate build=packer/base.yml # validate `packer/custom/my-customer-server.yml` file make image-validate build=packer/custom/my-customer-server.yml ```