GitHub Actions Workshop

Master GitHub Actions with hands-on labs and exercises. Learn how to automate workflows, run tests, deploy applications, and more using GitHub's powerful automation platform. This repository has everything you need to get started with continuous integration and continuous deployment.


Project maintained by prasadhonrao Hosted on GitHub Pages — Theme by mattgraham

GitHub Actions Workshop Logo

⭐ If you like this repo, star it on GitHub — it helps a lot! ⭐

OverviewPrerequisitesObjectivesLabsResourcesLicense


Overview

Welcome to the GitHub Actions Workshop! This interactive workshop is designed to help you learn, practice, and master GitHub Actions—GitHub’s powerful automation platform for building, testing, and deploying code.

Throughout this workshop, you’ll gain hands-on experience in:

The workshop is structured around a series of labs, exercises, and real-world example workflows. Each lab is crafted to incrementally build your knowledge and skills, making it accessible whether you’re a beginner exploring automation for the first time or an experienced developer looking to optimize and scale your CI/CD pipelines.

By the end of this workshop, you’ll have the tools and confidence to harness the full potential of GitHub Actions, enabling you to automate complex processes, improve productivity, and accelerate software delivery.


Objectives

By the end of this workshop, you will learn how to:

  1. Understand GitHub Actions Fundamentals:

    • Grasp the basics of GitHub Actions and its architecture.
    • Learn the YAML syntax used to define workflows.
    • Understand workflow syntax and how to write workflows using IntelliSense.
  2. Create and Customize Workflows:

    • Set up GitHub Actions workflows from scratch.
    • Trigger workflows using various events such as push, pull_request, and workflow_dispatch.
    • Customize workflows with job and step attributes.
  3. Use Contexts, Expressions, and Commands:

    • Leverage contexts and expressions to create dynamic workflows.
    • Learn GitHub Actions workflow commands to pass data between steps and manage workflow behavior.
  4. Optimize Runner Options:

    • Understand different hosting options for runners, including GitHub-hosted and self-hosted runners.
    • Configure and optimize runners for better performance and cost efficiency.
  5. Integrate Advanced Features:

    • Use secrets and environment variables securely in workflows.
    • Employ workflow templates and reusable workflows to standardize automation across repositories.
    • Integrate GitHub Actions with external tools and services, such as Slack, AWS, and Jira.
  6. Create Custom Actions:

    • Develop custom JavaScript and Docker actions for specific needs.
    • Publish and maintain custom actions on the GitHub Marketplace.
  7. Implement and Manage CI/CD Pipelines:

    • Build robust CI/CD pipelines for various technologies, including:
      • ASP.NET Core Web Apps and Web APIs.
      • Frontend frameworks like React.
      • Python applications with virtual environments and dependency management.
    • Automate the packaging and publishing of artifacts to GitHub Releases, NuGet, or PyPI.
    • Automate deployment workflows to cloud providers, such as Azure, AWS, or Google Cloud.
  8. Debug and Troubleshoot:

    • Debug workflows using logging and the debug feature.
    • Troubleshoot common issues like permission errors, job failures, and event mismatches.
  9. Follow Best Practices:

    • Adopt best practices for workflow design, security, and performance.
    • Use linting tools and code reviews to maintain high-quality workflows.
  10. Leverage Advanced Topics (Optional for Advanced Users):

    • Use matrix builds to test across multiple configurations.
    • Implement caching for dependencies and workflows.
    • Explore composite actions to combine multiple steps into reusable units.
    • Analyze and optimize workflow performance with metrics and analytics.

Prerequisites

Before you start the workshop, ensure you meet the following requirements:

Hardware and Connectivity

GitHub Setup

Development Environment

Knowledge Prerequisites

Accounts and Tools

Software Tools

Permissions and Access


Labs

The core of this workshop is built around a set of labs that walk you through the process of automating your software development workflows using GitHub Actions.

To get started, navigate to the Workshop Labs page where you’ll find all the exercises, instructions, and challenges designed to help you understand and implement GitHub Actions step by step. Feel free to explore the labs and start working through them at your own pace!


Resources

Official GitHub Actions Resources

Learning and Tutorials

Guides

Community Curated Resources

Debugging and Optimization

Security and Compliance

Additional Tools and Integrations


License

This project is licensed under the MIT License - see the LICENSE file for details.