GitHub Actions 101
The Future of Workflow Automation Is Now
Nico Meisenzahl
• Senior Cloud & DevOps Consultant at white duck
• Microsoft MVP, GitLab Hero & Docker Community
Leader
• Container, Kubernetes, Cloud-Native & DevOps
© white duck GmbH 2021
Phone: +49 8031 230159 0
Email: nico.meisenzahl@whiteduck.de
Twitter: @nmeisenzahl
LinkedIn: https://www.linkedin.com/in/nicomeisenzahl
Blog: https://meisenzahl.org
Integrated CI/CD workflows
© white duck GmbH 2021
Event and schedule driven
• GitHub events
• webhooks
• scheduled
• manual
© white duck GmbH 2021
Community-powered
© white duck GmbH 2021
Easy to use
© white duck GmbH 2021
Workflows
© white duck GmbH 2021
Workflow - your pipeline
containing procedure
A job
© white duck GmbH 2021
Job - a set of procedures
that execute on the same
runner
A step
© white duck GmbH 2021
Step - is an individual
task that can run
commands
(Action or Shell)
An Action
© white duck GmbH 2021
Action - the smallest
portable building block of
a workflow
Actions by GitHub
© white duck GmbH 2021
Further features & services
• publish your artifacts & container images to GitHub
Packages
• Container Registry
• npm, Maven/Gradle, NuGet, RubyGem
• service container for workflow dependencies
• https://docs.github.com/en/actions/guides/about-service-
containers
• test your workflow locally (open-source project)
• https://github.com/nektos/act
© white duck GmbH 2021
GitHub Actions & Azure
© white duck GmbH 2021
GitHub Actions & DevOps Pipelines
• Azure Pipelines app
• https://github.com/marketplace/azure-pipelines
• Azure Pipelines action
• https://github.com/marketplace/actions/azure-pipelines-action
• following lines are my personal views!
• if possible, use GitHub and GitHub Actions for new projects
• migrate existing Azure DevOps projects to YAML pipelines to
be more flexible in the future
© white duck GmbH 2021
Demo: GitHub Actions in action J
• Marketplace
• CI workflow
• event-based workflow
© white duck GmbH 2021
Build your own GitHub Action
• define your type
• JavaScript-based
• container-based (linux only)
• composite action
• provide metadata in the action.y(a)ml and Readme.md
• more details
• https://help.github.com/en/actions/building-actions
© white duck GmbH 2021
Distribute, publish and use your Action
• publicly via Marketplace
• local repo
• .github/actions/
• other (private) repo
• you will need a second checkout step
• private container registry with container-based action
© white duck GmbH 2021
Further resources
• docs
• https://docs.github.com/actions
• https://github.com/actions/starter-workflows
• public roadmap
• https://github.com/github/roadmap/projects/1?card_filter_query=labe
l%3Aactions
• self-hosted runners
• https://docs.github.com/en/actions/hosting-your-own-runners/about-
self-hosted-runners
• GitHub Enterprise (on-premises)
• https://github.com/enterprise
© white duck GmbH 2021
Questions?
Slides: https://www.slideshare.net/nmeisenzahl
Demo: https://github.com/nmeisenzahl/gh-actions-demo
Nico Meisenzahl (Senior Cloud & DevOps Consultant)
Phone: +49 8031 230159 0
Email: nico.meisenzahl@whiteduck.de
Twitter: @nmeisenzahl
LinkedIn: https://www.linkedin.com/in/nicomeisenzahl
Blog: https://meisenzahl.org
© white duck GmbH 2021

GitHub Actions 101

  • 1.
    GitHub Actions 101 TheFuture of Workflow Automation Is Now
  • 2.
    Nico Meisenzahl • SeniorCloud & DevOps Consultant at white duck • Microsoft MVP, GitLab Hero & Docker Community Leader • Container, Kubernetes, Cloud-Native & DevOps © white duck GmbH 2021 Phone: +49 8031 230159 0 Email: nico.meisenzahl@whiteduck.de Twitter: @nmeisenzahl LinkedIn: https://www.linkedin.com/in/nicomeisenzahl Blog: https://meisenzahl.org
  • 3.
    Integrated CI/CD workflows ©white duck GmbH 2021
  • 4.
    Event and scheduledriven • GitHub events • webhooks • scheduled • manual © white duck GmbH 2021
  • 5.
  • 6.
    Easy to use ©white duck GmbH 2021
  • 7.
    Workflows © white duckGmbH 2021 Workflow - your pipeline containing procedure
  • 8.
    A job © whiteduck GmbH 2021 Job - a set of procedures that execute on the same runner
  • 9.
    A step © whiteduck GmbH 2021 Step - is an individual task that can run commands (Action or Shell)
  • 10.
    An Action © whiteduck GmbH 2021 Action - the smallest portable building block of a workflow
  • 11.
    Actions by GitHub ©white duck GmbH 2021
  • 12.
    Further features &services • publish your artifacts & container images to GitHub Packages • Container Registry • npm, Maven/Gradle, NuGet, RubyGem • service container for workflow dependencies • https://docs.github.com/en/actions/guides/about-service- containers • test your workflow locally (open-source project) • https://github.com/nektos/act © white duck GmbH 2021
  • 13.
    GitHub Actions &Azure © white duck GmbH 2021
  • 14.
    GitHub Actions &DevOps Pipelines • Azure Pipelines app • https://github.com/marketplace/azure-pipelines • Azure Pipelines action • https://github.com/marketplace/actions/azure-pipelines-action • following lines are my personal views! • if possible, use GitHub and GitHub Actions for new projects • migrate existing Azure DevOps projects to YAML pipelines to be more flexible in the future © white duck GmbH 2021
  • 15.
    Demo: GitHub Actionsin action J • Marketplace • CI workflow • event-based workflow © white duck GmbH 2021
  • 16.
    Build your ownGitHub Action • define your type • JavaScript-based • container-based (linux only) • composite action • provide metadata in the action.y(a)ml and Readme.md • more details • https://help.github.com/en/actions/building-actions © white duck GmbH 2021
  • 17.
    Distribute, publish anduse your Action • publicly via Marketplace • local repo • .github/actions/ • other (private) repo • you will need a second checkout step • private container registry with container-based action © white duck GmbH 2021
  • 18.
    Further resources • docs •https://docs.github.com/actions • https://github.com/actions/starter-workflows • public roadmap • https://github.com/github/roadmap/projects/1?card_filter_query=labe l%3Aactions • self-hosted runners • https://docs.github.com/en/actions/hosting-your-own-runners/about- self-hosted-runners • GitHub Enterprise (on-premises) • https://github.com/enterprise © white duck GmbH 2021
  • 19.
    Questions? Slides: https://www.slideshare.net/nmeisenzahl Demo: https://github.com/nmeisenzahl/gh-actions-demo NicoMeisenzahl (Senior Cloud & DevOps Consultant) Phone: +49 8031 230159 0 Email: nico.meisenzahl@whiteduck.de Twitter: @nmeisenzahl LinkedIn: https://www.linkedin.com/in/nicomeisenzahl Blog: https://meisenzahl.org © white duck GmbH 2021