SlideShare a Scribd company logo
1 of 9
Building With Gradle
Simplicity + Automation
Terminology
Swc - library file, used when compiling a swf
Holds functions, classes, ect.
Swf - final product, holds logic and resources
Flash runs this, and the game plays
Nexus - Artifact Repository
Holds files needed by various projects
Jenkins - continuous integration software
Automatically runs build script
The Process Before And After
Before
1. Create family stream 5 mins
2. Branch off of main 2
hrs
3. Refactor game family 1 min
4. Modify source code
(variable)
5. Build all games 1 hr
6. Commit to perforce 5
mins
7. Trigger build on jenkins 5 mins
8. Deploy games 10
mins
9. Test all games 2
weeks
Total time: 2 weeks, 3 hours, 28 minutes
After
1. Branch off social lib 5
mins
2. Modify swc
(variable)
3. Deploy to nexus 3 mins
4. Modify xml doc 2 mins
5. Trigger build on jenkins 2 mins
6. Test one game 4 hrs
Total time: 4 hours, 12 minutes
The New Process (Libraries)
Developer PC
Nexus
(Versioned Swc
Libraries)
Jenkins
(Runs build script)
Perforce
(Source)
The New Process (Games)
Nexus
(Versioned
Swc
Libraries)
Jenkins
(Runs build
script)
Staging
(Games)
Perforce
(Source and
Binaries)
QA
(Games)
Live
(Games)
Users
Developer PC
Gradle
Builds using groovy
scripting language
Groovy is more or less
interpreted java
Provides increased flexibility
Much easier to write than
ant’s xml
Portable
Auto-generated Gradle
wrapper
Allows Gradle script to be
executed without
installing gradle
Generates both windows
and linux scripts
What is Happening
Imports ant build file(s)
Uses ant tasks and properties
Can overwrite tasks
Calls ant compile tasks to build games/libraries
Can eventually be replaced by gradleFx
Uses gradle script for dependencies/deployment
Uploads artifacts to Nexus
Downloads dependencies from Nexus
Impact
Architecture changes are isolated
Quickly fix bugs and add new games to Real Money
Gaming
Time to QA drastically reduced
Fewer environments, reduced upkeep
Script automates the build process
Everything is up to date
No more “too many cooks” scenarios

More Related Content

What's hot

ZooKeeper - wait free protocol for coordinating processes
ZooKeeper - wait free protocol for coordinating processesZooKeeper - wait free protocol for coordinating processes
ZooKeeper - wait free protocol for coordinating processesJulia Proskurnia
 
Linux server backup solution
Linux server backup solutionLinux server backup solution
Linux server backup solutionShaojie Yang
 
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...Puppet
 
I wanna talk about nsenter
I wanna talk about nsenterI wanna talk about nsenter
I wanna talk about nsenterRichárd Kovács
 
Travis CI: Fun and easy CI for your Plone packages
Travis CI: Fun and easy CI for your Plone packagesTravis CI: Fun and easy CI for your Plone packages
Travis CI: Fun and easy CI for your Plone packagesNejc Zupan
 
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltStack
 
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014Puppet
 
Continuous Delivery of Puppet Manifests
Continuous Delivery of Puppet ManifestsContinuous Delivery of Puppet Manifests
Continuous Delivery of Puppet ManifestsKris Buytaert
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to AnsibleMichael Bahr
 
Bringing Jenkins Remote Access API To The Masses
Bringing Jenkins Remote Access API To The MassesBringing Jenkins Remote Access API To The Masses
Bringing Jenkins Remote Access API To The MassesCliffano Subagio
 
Do you know all of Puppet?
Do you know all of Puppet?Do you know all of Puppet?
Do you know all of Puppet?Julien Pivotto
 
Narwhal and the Adventures of CommonJS
Narwhal and the Adventures of CommonJSNarwhal and the Adventures of CommonJS
Narwhal and the Adventures of CommonJSClinton Dreisbach
 
Wordpress y Docker, de desarrollo a produccion
Wordpress y Docker, de desarrollo a produccionWordpress y Docker, de desarrollo a produccion
Wordpress y Docker, de desarrollo a produccionSysdig
 
Drone your Ansible
Drone your AnsibleDrone your Ansible
Drone your AnsibleDennis Rowe
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and GroovyKiyotaka Oku
 
Docker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihanDocker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihanjbminn
 
Test driven infrastructure avec Docker
Test driven infrastructure avec DockerTest driven infrastructure avec Docker
Test driven infrastructure avec DockerSéven Le Mesle
 

What's hot (20)

ZooKeeper - wait free protocol for coordinating processes
ZooKeeper - wait free protocol for coordinating processesZooKeeper - wait free protocol for coordinating processes
ZooKeeper - wait free protocol for coordinating processes
 
Linux server backup solution
Linux server backup solutionLinux server backup solution
Linux server backup solution
 
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
 
Solidity intro
Solidity introSolidity intro
Solidity intro
 
I wanna talk about nsenter
I wanna talk about nsenterI wanna talk about nsenter
I wanna talk about nsenter
 
Travis CI: Fun and easy CI for your Plone packages
Travis CI: Fun and easy CI for your Plone packagesTravis CI: Fun and easy CI for your Plone packages
Travis CI: Fun and easy CI for your Plone packages
 
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
 
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
 
Continuous Delivery of Puppet Manifests
Continuous Delivery of Puppet ManifestsContinuous Delivery of Puppet Manifests
Continuous Delivery of Puppet Manifests
 
RingoJS
RingoJSRingoJS
RingoJS
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Bringing Jenkins Remote Access API To The Masses
Bringing Jenkins Remote Access API To The MassesBringing Jenkins Remote Access API To The Masses
Bringing Jenkins Remote Access API To The Masses
 
Do you know all of Puppet?
Do you know all of Puppet?Do you know all of Puppet?
Do you know all of Puppet?
 
Narwhal and the Adventures of CommonJS
Narwhal and the Adventures of CommonJSNarwhal and the Adventures of CommonJS
Narwhal and the Adventures of CommonJS
 
Wordpress y Docker, de desarrollo a produccion
Wordpress y Docker, de desarrollo a produccionWordpress y Docker, de desarrollo a produccion
Wordpress y Docker, de desarrollo a produccion
 
Drone your Ansible
Drone your AnsibleDrone your Ansible
Drone your Ansible
 
Kotlin v1.1.2
Kotlin v1.1.2 Kotlin v1.1.2
Kotlin v1.1.2
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and Groovy
 
Docker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihanDocker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihan
 
Test driven infrastructure avec Docker
Test driven infrastructure avec DockerTest driven infrastructure avec Docker
Test driven infrastructure avec Docker
 

Similar to High 5 Final Presentation

How Openstack is Built
How Openstack is BuiltHow Openstack is Built
How Openstack is BuiltAnton Weiss
 
Gears of Perforce: AAA Game Development Challenges
Gears of Perforce: AAA Game Development ChallengesGears of Perforce: AAA Game Development Challenges
Gears of Perforce: AAA Game Development ChallengesPerforce
 
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016Cloud Native Day Tel Aviv
 
Jenkins Scriptler in 90mins
Jenkins Scriptler in 90minsJenkins Scriptler in 90mins
Jenkins Scriptler in 90minsLarry Cai
 
Fullstack workshop
Fullstack workshopFullstack workshop
Fullstack workshopAssaf Gannon
 
How to push to production a project with 100+ plugins in less than 10 minutes
How to push to production a project with 100+ plugins in less than 10 minutes How to push to production a project with 100+ plugins in less than 10 minutes
How to push to production a project with 100+ plugins in less than 10 minutes Thiago Leão Moreira
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Henri Gomez
 
Continuous delivery the nuts and bolts
Continuous delivery the nuts and boltsContinuous delivery the nuts and bolts
Continuous delivery the nuts and boltsOlympicSoftware
 
Api Versioning with Docker and Nginx
Api Versioning with Docker and NginxApi Versioning with Docker and Nginx
Api Versioning with Docker and Nginxtech.kartenmacherei
 
Cooking the Cake for Nuget packages
Cooking the Cake for Nuget packagesCooking the Cake for Nuget packages
Cooking the Cake for Nuget packagesSergey Dzyuban
 
Apache Spark Performance: Past, Future and Present
Apache Spark Performance: Past, Future and PresentApache Spark Performance: Past, Future and Present
Apache Spark Performance: Past, Future and PresentDatabricks
 
Technical workshop Assignment Represent
Technical workshop Assignment RepresentTechnical workshop Assignment Represent
Technical workshop Assignment RepresentNguyen Ngo Dinh
 
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015Black Duck by Synopsys
 
Yevhenii Ovcharenko "Distributed automation testing using Minikube, Selenium ...
Yevhenii Ovcharenko "Distributed automation testing using Minikube, Selenium ...Yevhenii Ovcharenko "Distributed automation testing using Minikube, Selenium ...
Yevhenii Ovcharenko "Distributed automation testing using Minikube, Selenium ...Fwdays
 
Scaling Servers and Storage for Film Assets
Scaling Servers and Storage for Film Assets  Scaling Servers and Storage for Film Assets
Scaling Servers and Storage for Film Assets Perforce
 
MoldCamp - multidimentional testing workflow. CIBox.
MoldCamp  - multidimentional testing workflow. CIBox.MoldCamp  - multidimentional testing workflow. CIBox.
MoldCamp - multidimentional testing workflow. CIBox.Andrii Podanenko
 

Similar to High 5 Final Presentation (20)

Docker meetup
Docker meetupDocker meetup
Docker meetup
 
How Openstack is Built
How Openstack is BuiltHow Openstack is Built
How Openstack is Built
 
Gears of Perforce: AAA Game Development Challenges
Gears of Perforce: AAA Game Development ChallengesGears of Perforce: AAA Game Development Challenges
Gears of Perforce: AAA Game Development Challenges
 
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
How OpenStack is Built - Anton Weiss - OpenStack Day Israel 2016
 
Jenkins Scriptler in 90mins
Jenkins Scriptler in 90minsJenkins Scriptler in 90mins
Jenkins Scriptler in 90mins
 
Fullstack workshop
Fullstack workshopFullstack workshop
Fullstack workshop
 
How to push to production a project with 100+ plugins in less than 10 minutes
How to push to production a project with 100+ plugins in less than 10 minutes How to push to production a project with 100+ plugins in less than 10 minutes
How to push to production a project with 100+ plugins in less than 10 minutes
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
 
Continuous delivery the nuts and bolts
Continuous delivery the nuts and boltsContinuous delivery the nuts and bolts
Continuous delivery the nuts and bolts
 
Api Versioning with Docker and Nginx
Api Versioning with Docker and NginxApi Versioning with Docker and Nginx
Api Versioning with Docker and Nginx
 
Kafka Workshop
Kafka WorkshopKafka Workshop
Kafka Workshop
 
Cooking the Cake for Nuget packages
Cooking the Cake for Nuget packagesCooking the Cake for Nuget packages
Cooking the Cake for Nuget packages
 
Monkey space 2013
Monkey space 2013Monkey space 2013
Monkey space 2013
 
X page developer
X page developerX page developer
X page developer
 
Apache Spark Performance: Past, Future and Present
Apache Spark Performance: Past, Future and PresentApache Spark Performance: Past, Future and Present
Apache Spark Performance: Past, Future and Present
 
Technical workshop Assignment Represent
Technical workshop Assignment RepresentTechnical workshop Assignment Represent
Technical workshop Assignment Represent
 
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
Making Enterprise-Ready Plugins - Kaj Kandler JUC West 2015
 
Yevhenii Ovcharenko "Distributed automation testing using Minikube, Selenium ...
Yevhenii Ovcharenko "Distributed automation testing using Minikube, Selenium ...Yevhenii Ovcharenko "Distributed automation testing using Minikube, Selenium ...
Yevhenii Ovcharenko "Distributed automation testing using Minikube, Selenium ...
 
Scaling Servers and Storage for Film Assets
Scaling Servers and Storage for Film Assets  Scaling Servers and Storage for Film Assets
Scaling Servers and Storage for Film Assets
 
MoldCamp - multidimentional testing workflow. CIBox.
MoldCamp  - multidimentional testing workflow. CIBox.MoldCamp  - multidimentional testing workflow. CIBox.
MoldCamp - multidimentional testing workflow. CIBox.
 

High 5 Final Presentation

  • 2. Terminology Swc - library file, used when compiling a swf Holds functions, classes, ect. Swf - final product, holds logic and resources Flash runs this, and the game plays Nexus - Artifact Repository Holds files needed by various projects Jenkins - continuous integration software Automatically runs build script
  • 3. The Process Before And After Before 1. Create family stream 5 mins 2. Branch off of main 2 hrs 3. Refactor game family 1 min 4. Modify source code (variable) 5. Build all games 1 hr 6. Commit to perforce 5 mins 7. Trigger build on jenkins 5 mins 8. Deploy games 10 mins 9. Test all games 2 weeks Total time: 2 weeks, 3 hours, 28 minutes After 1. Branch off social lib 5 mins 2. Modify swc (variable) 3. Deploy to nexus 3 mins 4. Modify xml doc 2 mins 5. Trigger build on jenkins 2 mins 6. Test one game 4 hrs Total time: 4 hours, 12 minutes
  • 4. The New Process (Libraries) Developer PC Nexus (Versioned Swc Libraries) Jenkins (Runs build script) Perforce (Source)
  • 5. The New Process (Games) Nexus (Versioned Swc Libraries) Jenkins (Runs build script) Staging (Games) Perforce (Source and Binaries) QA (Games) Live (Games) Users Developer PC
  • 6. Gradle Builds using groovy scripting language Groovy is more or less interpreted java Provides increased flexibility Much easier to write than ant’s xml
  • 7. Portable Auto-generated Gradle wrapper Allows Gradle script to be executed without installing gradle Generates both windows and linux scripts
  • 8. What is Happening Imports ant build file(s) Uses ant tasks and properties Can overwrite tasks Calls ant compile tasks to build games/libraries Can eventually be replaced by gradleFx Uses gradle script for dependencies/deployment Uploads artifacts to Nexus Downloads dependencies from Nexus
  • 9. Impact Architecture changes are isolated Quickly fix bugs and add new games to Real Money Gaming Time to QA drastically reduced Fewer environments, reduced upkeep Script automates the build process Everything is up to date No more “too many cooks” scenarios