### GitHub Workshop Guide: This Workshop will teach you the fundamentals of GitHub, security strategy and essentials on GitHub and how to use GitHub actions to enable CI/CD across your repositories. GitHub Actions is an advanced feature of GitHub that enables automation, artifact management and CI/CD natively. This workshop aims to educate you on how to implement these workflows across your projects on GitHub. Your moderator will likely be vastly out numbered during your workshop - therefore please rely heavily on the documentation provided and available on [help.github.com](https://help.github.com/en). When you are complete, feel free to ask for feedback from your moderator and remember the best way to learn is to teach! ### Phase 1: Introduction to GitHub > **GitHub Fundamentals** 1. Star this repository so we know you have taken this workshop! 1. Fork this repository to your GitHub Account. (Fork button on top right of Repo) 1. Go to the `Introduction to GitHub` [module](https://lab.github.com/githubtraining/introduction-to-github) **In this course, you’ll learn how to:** - Communicate in issues - Manage notifications - Create branches - Make commits - Introduce changes with pull requests ### Phase 2: Security Strategy & Essentials: > **This course will show you how to build, host, and maintain a secure repository on GitHub.** 1. Go to the `Security Essentials` [module](https://lab.github.com/githubtraining/security-strategy-essentials) **In this course, you’ll learn how to:** - Enable vulnerable dependency detection for private repositories - Detect and fix outdated dependencies with security vulnerabilities - Automate the detection of vulnerable dependencies with Dependabot - Add a security policy with the a SECURITY.md file - Remove a commit exposing sensitive data in a pull request - Keep sensitive files out of your repository by leveraging the use of a .gitignore file - Remove historical commits exposing sensitive data deep in your repository ### Phase 3: Create your first action > **The goal of Phase 2 is to Create a simple GitHub Action and use it in a workflow.** 1. Go to the `hello world` [actions module](https://lab.github.com/github/hello-github-actions!) 1. Review the official [GitHub Actions resources](https://github.com/alwell-kevin/awesome-actions#official-resources). **In this phase, you’ll learn how to:** - Organize and identify workflow files - Add executable scripts - Create workflow and action blocks - Trigger workflows - Discover workflow logs ### Phase 4: Continuous Integration with Actions > **The goal of Phase 3 is to Learn how to create workflows that enable you to use Continuous Integration (CI) for your projects.** 1. Go to the `Continuous Integration` [actions module](https://lab.github.com/githubtraining/github-actions:-continuous-integration) **In this phase, you’ll learn how to:** - Describe CI and why it is necessary - Use and customize a templated workflow - Create CI workflows that match the team's needs and behaviors - Use the repository's source code and build artifacts (like compiled source code) across jobs in a workflow - Implement a unit testing framework using GitHub Actions - Create a workflow that runs tests and produces test reports - Set up a matrix build to create build artifacts for multiple target platforms - Save a repository's build artifacts - Access saved build artifacts - Choose virtual environments for the application's CI needs ### Phase 5: Publish your Artifact to GitHub Packages > **The goal of Phase 4 is to walk you through using GitHub Actions to get your code in a deployable state once your CI workflows have completed.** 1. Go to the `Artifact Publishing` [actions module](https://lab.github.com/githubtraining/github-actions:-publish-to-github-packages) **In this phase, you’ll learn how to:** - Describe CD and why it is necessary - Use and customize a repository workflow - Create CD workflows that matches the team's needs and behaviors - Use the repository's source code to build artifacts and store them in the GitHub Packages - Save repository build artifacts - Access saved build artifacts ### Phase 6: Continuous Delivery > **FINAL: The goal of Phase 6 is to create a deployment workflow using Azure.** 1. Go to the `Action Samples for deploying to Azure Web apps` [actions module](https://lab.github.com/githubtraining/github-actions:-continuous-delivery-with-azure) 2. Choose a sample app, and deploy it to Azure. **In this phase, you’ll learn how to:** - Create multiple workflows - Configure Azure for deployment - Use secrets to store tokens - Deploy to staging and production - Practice using GitHub Actions ### Additional Documentation > **The goal of Phase 1 is to understand the major concepts that will be leveraged throughout the workshop. Documentation should be read carefully and referred to often.** 1. [All things GitHub](https://help.github.com/en/github) 1. [Understanding Actions](https://help.github.com/en/github/automating-your-workflow-with-github-actions/about-github-actions#core-concepts-for-github-actions) 1. [Creating a workflow](https://help.github.com/en/github/automating-your-workflow-with-github-actions/configuring-a-workflow)