Developer guide

From LPI Wiki
Jump to navigationJump to search

Introduction

This is a quick start guide.

Installation Steps

Install Docker

Install docker:

https://docs.docker.com/linux/started/

You may have to do this step.

Add user to docker group:

usermod -a -G docker $USER

Install Perforce

Install perforce client from: http://www.perforce.com/downloads/helix

sudo cp ~/Downloads/p4 /usr/local/bin
sudo chmod +x /usr/local/bin/p4

Create new folder in your home directory for the source code.

mkdir -p ~/p4/xamnet

Create new file in this folder called ~/p4/xamnet/.p4settings
Include in this file:

P4PORT=p4.lpi.org:1666
P4USER=<username>
P4PASSWD=<password>
P4CLIENT=<username>-dev

Edit ~/.bashrc file to include:

xamdev=$HOME/p4/xamnet/xamnet/dev/dev/pde/mojo
xamman=$HOME/p4/xamnet/xamnet/man/dev/pde/mojo
export P4CONFIG=.p4settings

This one time, source ~/.bashrc (it's automatic on subsequent logins):

. ~/.bashrc

Create Your Perforce Workspace

tbd

and:

p4 sync

Running the Tests

Load Docker Image

Load linux image from $xamdev/docker

cd $xamdev/docker
docker load -i xamnet:dev-docker-img.tar

Create your own personalized Dockerfile

mkdir -p ~/docker/$USER
cp -r $xamdev/docker/rick/rick/xamdev ~/docker/$USER
cd ~/docker/$USER
# Now edit Dockerfile.dev and change all occurrences of "rick" to your username except on the FROM line

Build your personalized image

docker build --rm -t $USER/$USER-xamdev:dev -f Dockerfile.dev .

If that complained because the value of $USER was less than 4 characters then substitute a longer word for the first $USER, e.g.

docker build --rm -t mydockerimages/$USER-xamdev:dev -f Dockerfile.dev .

Edit the container start script, rundocker.dev, and set IMAGE to what you used before, e.g.

IMAGE=$USER/$USER-xamdev:dev

Start the container and run from its shell

./rundocker.dev

Create xamdev database

You will need two databases, one for regression tests and one for development.

Create regression test database

./build-tools/bin/makedatabase.sh 

Create development database

./build-tools/bin/makedatabase.sh xamdev_development

You will be prompted for your mysql root password for each.

Run xamdev web app

Through docker terminal

cd $xamdev
morbo script/xamdev_web

Use ip address to connect to server through browser.

If the message "Can't create listen socket: Address already in use at /usr/share/perl5/Mojo/ loLoop.pm line 120" is displayed use command:

morbo -l http://*:3001 script/xamdev_web

Run Regression Tests

cd $xamdev
prove -v t