Configuration and Deployment Flashcards
(12 cards)
What is the purpose of release management in software projects?
To prepare periodic releases and updates of the software.
What is Continuous Integration (CI)?
All code changes go directly into mainline of version control
An automated process that builds and tests code on every change submission
Always have a working mainline in version control
Successful build = accepted submission
What are the benefits of CI?
Supports TDD - all submissions need to integrate successfully
Identifies bugs early - as integration happens sooner
Ensures integration success - integration figured out from the start
What are the common git branch strategies?
No branches - team works from main source tree
Branch for release - branch supports an ongoing release, merge back to main after the software is released
Branch for maintenance - branch maintains an old build, so you don’t destabilise current projects, may or may not merge back to main
Branch for feature - create a dev branch, work in dev branch, merge back to main Branch for
Branch from team - isolated sub-teams so they can work in parallel towards unique milestones
What is a Build Configuration?
A setup specifying components, libraries, tests, and platforms for building software and where to deploy the build
Release is built of this configuration
Several version of the release are built for different platforms
What are the stages of release life cycles?
Pre-Alpha, Alpha, Beta, Release Candidate, Release.
What is automated deployment?
The automatic release of built software to target platforms.
What is the purpose of tagging in version control?
To mark specific commits as release points triggering build scripts.
Why is version control critical in CI?
It ensures consistent and traceable code changes across builds.
Who typically manages build configurations and scripts?
A release engineer.
How do release cycles work?
Version Control
Continuous Integration
Build Configurations
Automatic Deployment
Why is version control useful for release cycles/management?
You can ‘pull’ old version of code and create a branch that represents that version to update without affecting the current version
Branches!