SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Tue-4-Mar, 10:05am, F.Boudra, M.Wasilewski
LCA14-203: Intro to CI@Linaro 1 of 3
Hour 1
● QA Services will introduce you to existing Linaro Test Plans
● Builds and Baselines will provide an overview to our build system, how
to create, manage and close out a build and how to submit the build
artifacts to LAVA for a test on lab hardware.
Hour 2
● LAVA will describe the process of adding new test capabilities (New
Platforms and/or New external test equipment)
● QA Services will overview how they use LAVA for tests
Hour 3
● LAVA will show you new features to improve test result filtering and
Visualization in LAVA
● QA Services will show you how Linaro rolls all the Build results, Test
Results (Manual / LAVA) into our test reports
Intro to CI @ Linaro
• Engineering builds
• Android
• OpenEmbedded
• Ubuntu
• LSK
• Working groups
• LEG
• LNG
• Requesting new Test Plan
• Contact QA team (Milosz Wasilewski)
• File REQ card
• Creating new test plans will be covered on Thursday session
Existing Test Plans
• Some test plans are not public (like LSK)
• Sharing to selected people isn’t easy as it implies google
account
• Turning ‘paper’ test plan into JSON test definition is
done manually by editing Jenkins configs
Existing Test Plans - problems
• Jenkins as the build system
• android-build.linaro.org for Android builds
• ci.linaro.org for everything else
• individual components
• acpica, libvirt QEMU, UEFI, etc...
• Ubuntu and OpenEmbedded based engineering builds
• hardware packs, rootfs, pre-built images
• Kernel CI
• mainline, ARM SoC (for-next), linux-next, linux-stable
• LSK, Linux Linaro, LEG, LNG
• LAVA as the automated testing system
• validation.linaro.org, Linaro’s production server
• running LAVA jobs on Cambridge lab hardware, restricted to Linaro
• community.validation.linaro.org, Linaro’s Community server
• running LAVA jobs on community hardware, open to everybody
Anatomy of CI loop
• Select a view
• Click “New job” button
• the new job is created on the selected view
How to create a build job
• Define a job name
• avoid names with spaces, it’s used in the URL
• Select the build job type
• free-style project
• Multijob project
• Multi-configuration project
• Copy an existing job
How to create a build job
• Configure the general options
• discard old builds
• days to keep build
• max number of builds to keep
• enabled project based security
• users/groups from login.linaro.org and “anonymous” account
• permissions: configure, read, extended read, build, worskpace
• this build is parametrized
• file parameter (properties), password parameter
• restrict where this project can be run
• label expression
• various builders (ephemeral vs persistent, regular user vs sudoer)
• Amazon EC2 instances
• VPS instances
• native builders
How to create a build job
• Configure the advanced project options
• use custom workspace (useful for multi-configuration project)
• directory for sub-builds “.”
• Configure source code management
• git plugin
• repository URL
• advanced -> refspec
• branch specifier
• additional behavior
• advanced clone behaviours -> shallow clone
• check out to a sub-directory
• clean after checkout
• wipe out repository and force clone
How to create a build job
• Configure build triggers
• trigger builds remotely (e.g. git hook)
• build periodically (cron syntax)
• gerrit event
• URL trigger (useful in particular use cases)
• polling, should be run on persistent slave!
• Configure configuration matrix (only for multi-
configuration project)
• add axis
• dynamic axis (e.g. defconfig list)
• slaves
• user-defined (e.g. custom string for gcc version, rootfs, etc...)
• run each configuration sequentially
• execute touchstones build first
How to create a build job
• Configure build environment
• abort the build if it’s stuck
• add timestamps to the console output
• copy files into the job’s workspace (e.g. Linaro GCC toolchain)
• set build name (e.g. GIT_REVISION, require to use git plugin)
• tie parent to a build node (only for multi-configuration)
• Configure build - 1/3
• “execute shell”
• run shell script, written inline or pulled from SCM
• can use regular git cli instead of Jenkins git plugin
• some environment variables are defined by Jenkins (axis too)
• can use Linaro CI build tools to build kernels
• can use Linaro jenkins setup scripts to build OpenEmbedded images
• generate configuration(s) to submit LAVA job (post-build-lava CI helper)
• generate BUILD-INFO.txt (required for publishing on snapshots)
• define ACLs
How to create a build job
• Configure build - 2/3
• “send files or execute command over ssh” to publish build artifacts on
snapshots.linaro.org
• it’s a two step process, transfer files then move files
• SSH server: snapshots.linaro.org
■ define “source files”
■ define “remote directory”: ${JOB_NAME}
/${BUILD_NUMBER}/path/to/artifact
• add server -> SSH server: snapshots.linaro.org file-move
■ exec command: “reshuffle-files --job-type prebuilt --job-
name ${JOB_NAME} --build-num ${BUILD_NUMBER}”
• advanced -> select “always SSH from master”
How to create a build job
• Configure build - 3/3
• trigger/call builds on other projects
• ubuntu-builder, CI helper used to cross build debian packages
• ubuntu-builder-native, CI helper used to build naively debian packages
• post-build-repo, CI helper used to upload packages to Linaro repository
• post-build-lava, CI helper used to submit a LAVA job (JSON job
definition)
• support fully custom job definition (CUSTOM_JSON_URL)
• support pre-built image (IMAGE_URL)
• support custom linaro_deploy_image parameters
(DEPLOY_IMAGE_PARAMETERS_URL)
• support custom metadata (METADATA_URL)
• support custom boot image parameters
(BOOT_IMAGE_PARAMETERS_URL)
• partial support for multi-node jobs
How to create a build job
• Configure post-build actions
• scan for compiler warnings (GCC, LLVM, doxygen, etc...)
• groovy postbuild
• powerful groovy scripting, access to Jenkins API (e.g. used to add a
direct link to LAVA job id, or rename a build job dynamically)
• Jenkins text finder (use regexp to find pattern)
• e-mail notification
How to create a build job
• Improve the publishing API
• Get latest rootfs/hwpack using API
• Support Jenkins CLI
• Jenkins job descriptions in human readable format,
maintained under SCM (Jenkins job builder)
Improvements
Any Questions?
Q&A
More about Linaro Connect: http://connect.linaro.org
More about Linaro: http://www.linaro.org/about/
More about Linaro engineering: http://www.linaro.org/engineering/
Linaro members: www.linaro.org/members

Weitere ähnliche Inhalte

Mehr von Linaro

HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...Linaro
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramLinaro
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNLinaro
 
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...Linaro
 
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...Linaro
 

Mehr von Linaro (20)

HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready Program
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NN
 
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
HKG18-301 - Dramatically Accelerate 96Board Software via an FPGA with Integra...
 
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
HKG18-300K2 - Keynote: Tomas Evensen - All Programmable SoCs? – Platforms to ...
 

Kürzlich hochgeladen

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Kürzlich hochgeladen (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

LCA14: LCA14-203: Introduction to CI @ Linaro 1of 3

  • 1. Tue-4-Mar, 10:05am, F.Boudra, M.Wasilewski LCA14-203: Intro to CI@Linaro 1 of 3
  • 2. Hour 1 ● QA Services will introduce you to existing Linaro Test Plans ● Builds and Baselines will provide an overview to our build system, how to create, manage and close out a build and how to submit the build artifacts to LAVA for a test on lab hardware. Hour 2 ● LAVA will describe the process of adding new test capabilities (New Platforms and/or New external test equipment) ● QA Services will overview how they use LAVA for tests Hour 3 ● LAVA will show you new features to improve test result filtering and Visualization in LAVA ● QA Services will show you how Linaro rolls all the Build results, Test Results (Manual / LAVA) into our test reports Intro to CI @ Linaro
  • 3. • Engineering builds • Android • OpenEmbedded • Ubuntu • LSK • Working groups • LEG • LNG • Requesting new Test Plan • Contact QA team (Milosz Wasilewski) • File REQ card • Creating new test plans will be covered on Thursday session Existing Test Plans
  • 4. • Some test plans are not public (like LSK) • Sharing to selected people isn’t easy as it implies google account • Turning ‘paper’ test plan into JSON test definition is done manually by editing Jenkins configs Existing Test Plans - problems
  • 5. • Jenkins as the build system • android-build.linaro.org for Android builds • ci.linaro.org for everything else • individual components • acpica, libvirt QEMU, UEFI, etc... • Ubuntu and OpenEmbedded based engineering builds • hardware packs, rootfs, pre-built images • Kernel CI • mainline, ARM SoC (for-next), linux-next, linux-stable • LSK, Linux Linaro, LEG, LNG • LAVA as the automated testing system • validation.linaro.org, Linaro’s production server • running LAVA jobs on Cambridge lab hardware, restricted to Linaro • community.validation.linaro.org, Linaro’s Community server • running LAVA jobs on community hardware, open to everybody Anatomy of CI loop
  • 6. • Select a view • Click “New job” button • the new job is created on the selected view How to create a build job
  • 7. • Define a job name • avoid names with spaces, it’s used in the URL • Select the build job type • free-style project • Multijob project • Multi-configuration project • Copy an existing job How to create a build job
  • 8. • Configure the general options • discard old builds • days to keep build • max number of builds to keep • enabled project based security • users/groups from login.linaro.org and “anonymous” account • permissions: configure, read, extended read, build, worskpace • this build is parametrized • file parameter (properties), password parameter • restrict where this project can be run • label expression • various builders (ephemeral vs persistent, regular user vs sudoer) • Amazon EC2 instances • VPS instances • native builders How to create a build job
  • 9. • Configure the advanced project options • use custom workspace (useful for multi-configuration project) • directory for sub-builds “.” • Configure source code management • git plugin • repository URL • advanced -> refspec • branch specifier • additional behavior • advanced clone behaviours -> shallow clone • check out to a sub-directory • clean after checkout • wipe out repository and force clone How to create a build job
  • 10. • Configure build triggers • trigger builds remotely (e.g. git hook) • build periodically (cron syntax) • gerrit event • URL trigger (useful in particular use cases) • polling, should be run on persistent slave! • Configure configuration matrix (only for multi- configuration project) • add axis • dynamic axis (e.g. defconfig list) • slaves • user-defined (e.g. custom string for gcc version, rootfs, etc...) • run each configuration sequentially • execute touchstones build first How to create a build job
  • 11. • Configure build environment • abort the build if it’s stuck • add timestamps to the console output • copy files into the job’s workspace (e.g. Linaro GCC toolchain) • set build name (e.g. GIT_REVISION, require to use git plugin) • tie parent to a build node (only for multi-configuration) • Configure build - 1/3 • “execute shell” • run shell script, written inline or pulled from SCM • can use regular git cli instead of Jenkins git plugin • some environment variables are defined by Jenkins (axis too) • can use Linaro CI build tools to build kernels • can use Linaro jenkins setup scripts to build OpenEmbedded images • generate configuration(s) to submit LAVA job (post-build-lava CI helper) • generate BUILD-INFO.txt (required for publishing on snapshots) • define ACLs How to create a build job
  • 12. • Configure build - 2/3 • “send files or execute command over ssh” to publish build artifacts on snapshots.linaro.org • it’s a two step process, transfer files then move files • SSH server: snapshots.linaro.org ■ define “source files” ■ define “remote directory”: ${JOB_NAME} /${BUILD_NUMBER}/path/to/artifact • add server -> SSH server: snapshots.linaro.org file-move ■ exec command: “reshuffle-files --job-type prebuilt --job- name ${JOB_NAME} --build-num ${BUILD_NUMBER}” • advanced -> select “always SSH from master” How to create a build job
  • 13. • Configure build - 3/3 • trigger/call builds on other projects • ubuntu-builder, CI helper used to cross build debian packages • ubuntu-builder-native, CI helper used to build naively debian packages • post-build-repo, CI helper used to upload packages to Linaro repository • post-build-lava, CI helper used to submit a LAVA job (JSON job definition) • support fully custom job definition (CUSTOM_JSON_URL) • support pre-built image (IMAGE_URL) • support custom linaro_deploy_image parameters (DEPLOY_IMAGE_PARAMETERS_URL) • support custom metadata (METADATA_URL) • support custom boot image parameters (BOOT_IMAGE_PARAMETERS_URL) • partial support for multi-node jobs How to create a build job
  • 14. • Configure post-build actions • scan for compiler warnings (GCC, LLVM, doxygen, etc...) • groovy postbuild • powerful groovy scripting, access to Jenkins API (e.g. used to add a direct link to LAVA job id, or rename a build job dynamically) • Jenkins text finder (use regexp to find pattern) • e-mail notification How to create a build job
  • 15. • Improve the publishing API • Get latest rootfs/hwpack using API • Support Jenkins CLI • Jenkins job descriptions in human readable format, maintained under SCM (Jenkins job builder) Improvements
  • 17. More about Linaro Connect: http://connect.linaro.org More about Linaro: http://www.linaro.org/about/ More about Linaro engineering: http://www.linaro.org/engineering/ Linaro members: www.linaro.org/members