3. Internal Artifact sharing
Latest GCC
Release
Kernel
Build
Hardware
Pack Create
Media
Create
LAVA
Test
Found by name + tags
● A step can use the output of a previous step and or job as
an input
○ Public and license protected artifacts are findable
■ Licenses are sticky
○ Private artifacts stay private to their owners jobs
● Other jobs can be referenced by a combination of name,
build number and tags.
4. Job & Step Chaining
● You can call other jobs as a step in the current job
○ Allows you to do CI properly
■ Test passed = ready to release
■ Use the same job to create the release
● If same inputs go into same job, should be able
to use cached output.
Merge Request
Report result to
merge requestor
Ubuntu
release test
Check out branch(es)
at given tag/rev
Build Test
Create
release
archive
5. Job Triggers
● Jobs can be triggered by
○ Time
○ VCS change
○ Another job completing
○ External system using API, e.g. a Gerrit review
request.
LAVAAPI Input Trigger
daily, 19:00
Android
6. Derive Job from existing...
● Copy
● Inherit
○ Copy, but changes made to parent job are reflected in
child configuration
○ User informed when change in parent conflicts with
change in child config
○ Child picks up fixes and new steps from parent
○ Useful for long running feature branches
● Create Template
○ Just keep the bits of config you want
○ Templates available for all specialised job types
7. Tags
● Keep job name simple and descriptive
● Use tags to provide extra information
Ubuntu Panda SnowballGCC 4.7Linux Linaro
8. Configuration: Mux/DeMux
● Muxes allow you have a common stage in a job with
parallel steps.
Android
Baseline
Baseline
+ Feature 1
Baseline
+ Feature 2
Test
Android Baseline
Results
Baseline
+ Feature 1
Results
Baseline
+ Feature 2
Results
Equality
Check
9. Release Time...
Release Day
in 1 week
Linaro Image Tools
release build + test
Ubuntu
release build + test
Android
release build + test
Notify QA team:
release candidate
ready
QA Team add
tag: QA-OK
Upload Android
release
Upload Ubuntu
release
Upload Linaro
Image Tools
release
Tag as
release
candidate
Tag as release
(and remove RC tag)
10. Putting it together: Front Page
1
Welcome Guest! Login
Name Status
GCC Trunk
HW Pack
(Snowball)
Search:
Build
2
Toolchain
Toolchain
Test
Android
Build
[R] LAVA
Test
Ubuntu
[F] Media
Create
Snowball
Kernel
Build
Release
Android
Ubuntu
Toolchain
Graphics
Infrastructure
Power Management
ARM
Samsung
ST Ericsson
Texas Instruments
IBM
Freescale
Panda Snowball Pass Fail Not Built
Running ALIP Developer gcc-6 gcc-7
Performance IKS big.LITTLE
Android
GCC Trunk
[F] Android
Build
[R] LAVA
Test
Ubuntu
Build
LAVA
Test
New Build
Toolchain
Toolchain
Test
Android
Build
[R] LAVA
Test
Kernel
Build
Join
RootFS
HW Pack
(Panda)
Media Create
Panda
93
150
7
Android JB Panda TI LTGCC 4.7
FreescaleGCC TrunkIMX.6ICS
Panda SnowballGCC 4.7Linux Linaro
GCC Trunk
GCC Trunk
Native
Cross
11. Putting it together: Front Page
1
Welcome Guest! Login
Name Status
Search:
Build
2
Release
Android
Ubuntu
Toolchain
Graphics
Infrastructure
Power Management
ARM
Samsung
ST Ericsson
Texas Instruments
IBM
Freescale
Panda Snowball Pass Fail Not Built
Running ALIP Developer gcc-6 gcc-7
Performance IKS big.LITTLE
Android
Build
LAVA Test
New Build
93
150
7
Android
Android
Android
Android
Android
SnowballJB GCC 4.7 Igloo
JB Panda TI LTGCC 4.7
ARM LTV.ExpressJB GCC 4.7
JB GCC 4.7Galaxy NexusAOSP
JB GCC 4.7OrigenSamsung LT
Android
Build
LAVA Test
Android
Build
LAVA Test
Android
Build
LAVA Test
Android
Build
LAVA Test
12. Putting it together: Job Result Page
Welcome Guest!
Build
Status: SUCCESS
Started: 2012-10-23 07:16:05
Finished: 2012-10-23 09:47:47
Lava Test : Running
<mini LAVA dasboard>
Results
Build Now
Job Name: Android Baseline Test [#92]
linaro_android_build_cmds.sh
kernel_config
linaro_kernel_build_cmds.sh
pinned-manifest.xml
source-manifest.xml
target/product/pandaboard/pandaboard.img.bz2
Tag this build
Job description...
Reuse config...
Android
Release 12.10
Panda Jelly Bean
QA-OK
Tag this job
Downloads
Login
Android build configuration...
MANIFEST_REPO=git://android.git.linaro.org/platform/manifest.git
MANIFEST_BRANCH=linaro_android_4.1.2
MANIFEST_FILENAME=tracking-panda.xml
[imported from git://android.git.linaro.org/zack_rocks.git]
BUILD_CONFIGURATION_FILENAME=linaro-build-config/tracking-panda.xml
TARGET_PRODUCT=pandaboard
TARGET_SIMULATOR=false
Configuration Console output
Downloads/
Internal Artifacts
Time Trigger: daily, 19:00Input Trigger Master Step
HowTo
Search:
ReadMe
Build # Result
92
91
90
89
88
87
Date
2012-10-24
2012-10-23
2012-10-22
2012-10-21
2012-10-20
2012-10-19
Configure Job
GCC 4.7
LAVARunningBaseline OK
Input Trigger
daily, 19:00
Android
LAVA
RunningBaseline OK
Input Trigger
daily, 19:00
Android