Slide 1

Slide 1 text

PROJECT DEPLOYMENT FOR SMALL TEAMS USING GIT + PHING.

Slide 2

Slide 2 text

Aaron Bassett http://aaronbassett.com http://twitter.com/aaronbassett

Slide 3

Slide 3 text

www.barcampglasgow.com

Slide 4

Slide 4 text

PHP + MYSQL + SOLARIS

Slide 5

Slide 5 text

+ MYSQL + SOLARIS PYTHON DJANGO

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

GIT a distributed revision control system

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

GIT COMMANDS ✓ init ✓ clone ✓ branch ✓ checkout ✓ status ✓ add ✓ commit ✓ merge ✓ pull ✓ push

Slide 10

Slide 10 text

public static bool IsNotEmpty(string value) { return !IsEmpty(value); } public static bool IsEmpty(string value) { return !IsNotEmpty(value); } git blame

Slide 11

Slide 11 text

THE BASICS git clone [email protected]:aaronbassett/TMU-Example.git git branch HelloWorld git checkout HelloWorld # Make changes to files git status git add filename.ext git commit -m ‘Commit message’ git checkout master git merge HelloWorld git pull git push origin master

Slide 12

Slide 12 text

book.git-scm.com Git community book

Slide 13

Slide 13 text

git clone git://github.com/schacon/gitbook

Slide 14

Slide 14 text

PHING Phing is not GNU make

Slide 15

Slide 15 text

PHING Phing is not GNU make

Slide 16

Slide 16 text

PHP + XML

Slide 17

Slide 17 text

XML

Slide 18

Slide 18 text

build.xml

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

# Django settings for techmeetup project. from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS import os TECHMEETUP_DIR = os.path.dirname(__file__) DEBUG = False TEMPLATE_DEBUG = DEBUG APPEND_SLASH = False ADMINS = ( # Add yourself homeboys! ('Oli Kingshott', '[email protected]'), ) MANAGERS = ADMINS DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = 'dev.db' DATABASE_USER = '' DATABASE_PASSWORD = '' DATABASE_HOST = '' DATABASE_PORT = ''

Slide 21

Slide 21 text

# Django settings for techmeetup project. from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS import os TECHMEETUP_DIR = os.path.dirname(__file__) DEBUG = False TEMPLATE_DEBUG = DEBUG APPEND_SLASH = False ADMINS = ( # Add yourself homeboys! ('##ADMIN-NAME##', '##ADMIN-EMAIL##'), ) MANAGERS = ADMINS DATABASE_ENGINE = '##DB-ENGINE##' DATABASE_NAME = '##DB-NAME##' DATABASE_USER = '##DB-USER##' DATABASE_PASSWORD = '##DB-PASS##' DATABASE_HOST = '##DB-HOST##' DATABASE_PORT = '##DB-PORT##'

Slide 22

Slide 22 text

Starting build... What database engine do you want to use?

Slide 23

Slide 23 text

Writing settings file

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

# Django settings for techmeetup project. from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS import os TECHMEETUP_DIR = os.path.dirname(__file__) DEBUG = False TEMPLATE_DEBUG = DEBUG APPEND_SLASH = False ADMINS = ( # Add yourself homeboys! ('Aaron', '[email protected]'), ) MANAGERS = ADMINS DATABASE_ENGINE = 'mysql' DATABASE_NAME = 'dev.db' DATABASE_USER = 'tmu-dev' DATABASE_PASSWORD = 'this should be masked' DATABASE_HOST = 'localhost' DATABASE_PORT = ''

Slide 26

Slide 26 text

git add build.xml

Slide 27

Slide 27 text

CLONE & BUILD. git clone git://repo.git phing -f build.xml

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

THAT’S ALL FOLKS Thanks for listening. Questions?