Continuous Integration & Continuous Deployment
GitHub Actions Case Study
Copyright University of Melbourne 2022
2022– Semester 1 Tutorial Week 11
Copyright By PowCoder代写 加微信 powcoder
• Continuous Integration & Continuous Delivery
• Introduction to GitHub Actions
• Experiment with GitHub Actions
SWEN90016 Software Processes and Project Management -2- IT ALL STARTS HERE
Terminology
• Continuous integration (CI) automatically builds, tests, and integrates code changes within a shared repository; then
• Continuous delivery (CD) automatically delivers code changes to production-ready environments for approval; or
• Continuous deployment (CD) automatically deploys code changes to customers directly.
https://resources.github.com/ci-cd/?scid=7013o000002CceTAAS
SWEN90016 Software Processes and Project Management -3- IT ALL STARTS HERE
A CI/CD pipeline
https://resources.github.com/ci-cd/?scid=7013o000002CceTAAS
SWEN90016 Software Processes and Project Management -4- IT ALL STARTS HERE
Continuous delivery vs. continuous deployment
https://resources.github.com/ci-cd/?scid=7013o000002CceTAAS
SWEN90016 Software Processes and Project Management -5- IT ALL STARTS HERE
Why CI/CD?
• Development velocity
– Ongoing feedback allows developers to commit smaller changes more often, versus waiting for one release.
• Stability and reliability
– Automated, continuous testing ensures that codebases remain stable and release-ready at any time.
• Business growth
– Freed up from manual tasks, organizations can focus
resources on innovation, customer satisfaction, and
paying down technical debt.
https://resources.github.com/ci-cd/?scid=7013o000002CceTAAS
SWEN90016 Software Processes and Project Management -6- IT ALL STARTS HERE
Example CI/CD workflow
https://resources.github.com/ci-cd/?scid=7013o000002CceTAAS
SWEN90016 Software Processes and Project Management -7- IT ALL STARTS HERE
What makes CI/CD successful
• Automation
– A good CI/CD workflow automates builds, testing, and deployment so you have more time for code.
• Transparency
– Quickly assess what went wrong and why.
• Speed/Resilience
– Lead time for changes (how quickly commits are made to code in production); Time to resolution (how quickly incidents are resolved); etc.
• Security
– Virtual paper trail for auditing failures, security breaches,
non-compliance events.
https://resources.github.com/ci-cd/?scid=7013o000002CceTAAS
SWEN90016 Software Processes and Project Management -8- IT ALL STARTS HERE
GitHub Actions
• GitHub Actions gives developers the ability to automate their workflows across issues, pull requests, and more—plus native CI/CD functionality.
• Launched in 2018.
https://resources.github.com/downloads/What-is-GitHub.Actions_.Benefits-and-examples.pdf
SWEN90016 Software Processes and Project Management -9- IT ALL STARTS HERE
GitHub Actions
• Brings automation into the software development lifecycle on GitHub via event-driven triggers.
• Triggers are specified events that can range from creating a pull request to building a new brand in a repository.
• GitHub Actions automations are handled via workflows, which are YAML files.
https://resources.github.com/downloads/What-is-GitHub.Actions_.Benefits-and-examples.pdf
SWEN90016 Software Processes and Project Management -10- IT ALL STARTS HERE
GitHub Actions Workflows
• Events: Events are defined triggers that kick off a workflow.
• Jobs: Jobs are a set of steps that execute on the same runner.
• Steps: Steps are individual tasks that run commands in a job.
• Actions: An action is a command that’s executed on a runner.
• Runners: A runner is a GitHub Actions server.
https://resources.github.com/downloads/What-is-GitHub.Actions_.Benefits-and-examples.pdf
SWEN90016 Software Processes and Project Management -11- IT ALL STARTS HERE
name: Welcome
pull_request:
types: [opened, closed]
types: [opened]
jobs: run:
runs-on: ubuntu-latest steps:
– uses: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} FIRST_ISSUE: |
👋 @{{ author }}
Thanks for opening your first issue here! Be sure to follow the issue template!
FIRST_PR: |
👋 @{{ author }}
Thanks for opening this pull request! Please check out our contributing guidelines.
FIRST_PR_MERGED: |
🎉 @{{ author }}
Congrats on merging your first pull request! We here at behaviorbot are proud of you!
https://github.com/marketplace/actions/welcome-new-users
SWEN90016 Software Processes and Project Management -12- IT ALL STARTS HERE
Try it yourself!
• Create an empty GitHub repository
• https://docs.github.com/en/actions/quickstart
– Follow the “Creating your first workflow” steps
– Follow the “Viewing your workflow results” steps
https://github.com/marketplace/actions/welcome- new-users to your repository and test it
• What other useful Actions are available on https://github.com/marketplace?type=actions?
SWEN90016 Software Processes and Project Management -13- IT ALL STARTS HERE
Thank You!
SWEN90016 Software Processes and Project Management IT ALL STARTS HERE
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com