More Related Content
Similar to Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkins (20)
Scalable Deployment Architectures with TYPO3 Surf, Git and Jenkins
- 86. martin@mybox:~ ssh myserver.de
martin@myserver:~ cd my_app
martin@myserver:~/my_app git fetch origin
martin@myserver:~/my_app git reset --hard origin/master
martin@myserver:~/my_app git submodule update --init
martin@myserver:~/my_app ./flow doctrine:migrate
martin@myserver:~/my_app ./flow cache:flush
Manual
- 90. martin@mybox:~ ssh myserver.de
martin@myserver:~ cd my_app
martin@myserver:~/my_app git fetch origin
martin@myserver:~/my_app git reset --hard origin/master
martin@myserver:~/my_app git submodule update --init
martin@myserver:~/my_app ./flow doctrine:migrate
martin@myserver:~/my_app ./flow cache:flush
VERSION
- 120. Deployment
project name=“my-app“ default=“deploy“
!-- ... --
target name=“git-fetch“
exec executable=“git“
arg line=“fetch origin“ /
/exec
exec executable=“git“
arg line=“reset --hard origin/master“ /
/exec
/target
target name=“migrate“ depends=“git-fetch“
flow-migrate /
flow-cache-flush /
/target
/project
SEE
- 128. DO?
├── cache
│ └── localgitclone
├── releases
│ ├── 20130324175345
│ └── current - ./20130324175345
└── shared
BEFORE
- 129. ├── cache
│ └── localgitclone
├── releases
│ ├── 20130324175345
│ └── current - ./20130324175345
└── shared
BEFORE
├── cache
│ └── localgitclone
├── releases
│ ├── 20130324175345
│ ├── 20130329184503
│ ├── previous - ./20130324175345
│ └── current - ./20130329184503
└── shared
AFTER
TYPO3
- 135. Surf
├── cache
│ └── localgitclone
├── releases
│ ├── 20130324175345
│ ├── 20130329184503
│ ├── previous - ./20130324175345
│ └── current - ./20130329184503
└── shared
Point
- 156. GIT:
git clone git://git.typo3.org/FLOW3/Packages/TYPO3.Surf.git
Packages/Application/TYPO3.Surf
./flow package:activate TYPO3.Surf
Install
- 233. ?php
/** @var $deployment TYPO3SurfDomainModelDeployment */
$workflow = new TYPO3SurfDomainModelSimpleWorkflow();
$application = new TYPO3SurfApplicationBaseApplication('MyApplication');
// ...
$deployment-setWorkflow($workflow);
$deployment-addApplication($application);
if (getenv('BUILD_TARGET') !== FALSE) {
$node = new TYPO3SurfDomainModelNode('node-' . getenv('BUILD_TARGET'));
$node-setHostname(getenv('BUILD_TARGET'));
$node-setOptions(array(
'username' = 'surf'
));
$application-addNode($node);
} else {
foreach (array('www01','www02','www03') as $node) {
$node = new TYPO3SurfDomainModelNode('node-' . $node);
$node-setHostname($node);
$node-setOptions(array(
'username' = 'surf'
));
$application-addNode($node);
}
}
- 234. ?php
/** @var $deployment TYPO3SurfDomainModelDeployment */
$workflow = new TYPO3SurfDomainModelSimpleWorkflow();
$application = new TYPO3SurfApplicationBaseApplication('MyApplication');
// ...
$deployment-setWorkflow($workflow);
$deployment-addApplication($application);
if (getenv('BUILD_TARGET') !== FALSE) {
$node = new TYPO3SurfDomainModelNode('node-' . getenv('BUILD_TARGET'));
$node-setHostname(getenv('BUILD_TARGET'));
$node-setOptions(array(
'username' = 'surf'
));
$application-addNode($node);
} else {
foreach (array('www01','www02','www03') as $node) {
$node = new TYPO3SurfDomainModelNode('node-' . $node);
$node-setHostname($node);
$node-setOptions(array(
'username' = 'surf'
));
$application-addNode($node);
}
}
- 235. ?php
/** @var $deployment TYPO3SurfDomainModelDeployment */
$workflow = new TYPO3SurfDomainModelSimpleWorkflow();
$application = new TYPO3SurfApplicationBaseApplication('MyApplication');
// ...
$deployment-setWorkflow($workflow);
$deployment-addApplication($application);
if (getenv('BUILD_TARGET') !== FALSE) {
$node = new TYPO3SurfDomainModelNode('node-' . getenv('BUILD_TARGET'));
$node-setHostname(getenv('BUILD_TARGET'));
$node-setOptions(array(
'username' = 'surf'
));
$application-addNode($node);
} else {
foreach (array('www01','www02','www03') as $node) {
$node = new TYPO3SurfDomainModelNode('node-' . $node);
$node-setHostname($node);
$node-setOptions(array(
'username' = 'surf'
));
$application-addNode($node);
}
}