Download Slide - Software Carpentry

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Automated Builds
Introduction
Copyright © Software Carpentry 2010
This work is licensed under the Creative Commons Attribution License
See http://software-carpentry.org/license.html for more information.
A typical working day
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Recalculate
data
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Recalculate
data
Recompile
stats program
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Recalculate
data
Recompile
Update
stats program
Java
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Recalculate
Re-install
data
graph tool
Recompile
Update
stats program
Java
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Recalculate
Re-install
data
graph tool
Recompile
Update
stats program
Java
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Recalculate
Re-install
data
graph tool
Recompile
Update
Free up
stats program
Java
disk space
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Recalculate
Re-install
data
graph tool
Recompile
Update
Free up
stats program
Java
disk space
Automated Builds
Introduction
A typical working day
Re-draw
Figure 8
Recalculate
Re-install
data
graph tool
Recompile
Update
Free up
stats program
Java
disk space
...shave the yak...
Automated Builds
Introduction
Re-draw
Figure 8
Recalculate
Re-install
data
graph tool
Recompile
Update
Free up
stats program
Java
disk space
Automated Builds
Introduction
task
Re-draw
Figure 8
Recalculate
Re-install
data
graph tool
Recompile
Update
Free up
stats program
Java
disk space
Automated Builds
Introduction
task
Re-draw
Figure 8
dependencies
Recalculate
Re-install
data
graph tool
Recompile
Update
Free up
stats program
Java
disk space
Automated Builds
Introduction
task
Re-draw
Figure 8
dependencies
Recalculate
Re-install
data
graph tool
Recompile
Update
Free up
stats program
Java
disk space
Free up
Recompile
Update
Recalculate
Re-install
Re-draw
disk space
stats program
Java
data
graph tool
Figure 8
Automated Builds
Introduction
This pattern arises frequently
Automated Builds
Introduction
This pattern arises frequently
New data collected?
Recalculate statistics
Automated Builds
Introduction
This pattern arises frequently
New data collected?
Recalculate statistics
Source files changed?
Recompile program
Automated Builds
Introduction
This pattern arises frequently
New data collected?
Recalculate statistics
Source files changed?
Recompile program
New content written?
Update web site
Automated Builds
Introduction
Hard or impossible to keep track of:
Automated Builds
Introduction
Hard or impossible to keep track of:
– what depends on what
Automated Builds
Introduction
Hard or impossible to keep track of:
– what depends on what
– what's up-to-date and what isn't
Automated Builds
Introduction
Hard or impossible to keep track of:
– what depends on what
– what's up-to-date and what isn't
"Anything worth repeating is worth automating."
Automated Builds
Introduction
Hard or impossible to keep track of:
– what depends on what
– what's up-to-date and what isn't
"Anything worth repeating is worth automating."
So use a build manager to automate the process
Automated Builds
Introduction
Hard or impossible to keep track of:
– what depends on what
– what's up-to-date and what isn't
"Anything worth repeating is worth automating."
So use a build manager to automate the process
Describe dependencies in a build file
Automated Builds
Introduction
Hard or impossible to keep track of:
– what depends on what
– what's up-to-date and what isn't
"Anything worth repeating is worth automating."
So use a build manager to automate the process
Describe dependencies in a build file
Along with commands used to update things
Automated Builds
Introduction
Hard or impossible to keep track of:
– what depends on what
– what's up-to-date and what isn't
"Anything worth repeating is worth automating."
So use a build manager to automate the process
Describe dependencies in a build file
Along with commands used to update things
Build manager does the rest
Automated Builds
Introduction
Most widely used build manager is Make
Automated Builds
Introduction
Most widely used build manager is Make
Note: "most widely used", not "most popular"
Automated Builds
Introduction
Most widely used build manager is Make
Note: "most widely used", not "most popular"
Invented by a student intern at Bell Labs in 1975
Automated Builds
Introduction
Most widely used build manager is Make
Note: "most widely used", not "most popular"
Invented by a student intern at Bell Labs in 1975
Has grown into a little programming language
Automated Builds
Introduction
Most widely used build manager is Make
Note: "most widely used", not "most popular"
Invented by a student intern at Bell Labs in 1975
Has grown into a little programming language
A very cryptic little language, without a debugger...
Automated Builds
Introduction
Most widely used build manager is Make
Note: "most widely used", not "most popular"
Invented by a student intern at Bell Labs in 1975
Has grown into a little programming language
A very cryptic little language, without a debugger...
...that requires an understanding of the Unix shell
Automated Builds
Introduction
GNU Make is fast, free, and
well-documented
Automated Builds
Introduction
GNU Make is fast, free, and
well-documented
And many other tools know how to work with it
Automated Builds
Introduction
GNU Make is fast, free, and
well-documented
And many other tools know how to work with it
Look at basics and a few advanced features
Automated Builds
Introduction
GNU Make is fast, free, and
well-documented
And many other tools know how to work with it
Look at basics and a few advanced features
Companion lecture explores SCons
Automated Builds
Introduction
GNU Make is fast, free, and
well-documented
And many other tools know how to work with it
Look at basics and a few advanced features
Companion lecture explores SCons
Java users should look at Ant
Automated Builds
Introduction
created by
Greg Wilson
August 2010
Copyright © Software Carpentry 2010
This work is licensed under the Creative Commons Attribution License
See http://software-carpentry.org/license.html for more information.