├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 octodemo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### GitHub Workshop Guide: 2 | 3 | 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. 4 | 5 | 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. 6 | 7 | If you have a moderator, they will likely be vastly out numbered during your workshop - 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! 8 | 9 | ### Phase 1: Introduction to GitHub 10 | > **GitHub Fundamentals** 11 | 1. Star this repository so we know you have taken this workshop! 12 | 1. Fork this repository to your GitHub Account. (Fork button on top right of Repo) 13 | 1. Go to the `Introduction to GitHub` [module](https://lab.github.com/githubtraining/introduction-to-github) 14 | 15 | **In this course, you’ll learn how to:** 16 | 17 | - Communicate in issues 18 | - Manage notifications 19 | - Create branches 20 | - Make commits 21 | - Introduce changes with pull requests 22 | 23 | ### Phase 2: Security Strategy & Essentials: 24 | > **This course will show you how to build, host, and maintain a secure repository on GitHub.** 25 | 1. Go to the `Security Essentials` [module](https://lab.github.com/githubtraining/security-strategy-essentials) 26 | 27 | **In this course, you’ll learn how to:** 28 | - Enable vulnerable dependency detection for private repositories 29 | - Detect and fix outdated dependencies with security vulnerabilities 30 | - Automate the detection of vulnerable dependencies with Dependabot 31 | - Add a security policy with the a SECURITY.md file 32 | - Remove a commit exposing sensitive data in a pull request 33 | - Keep sensitive files out of your repository by leveraging the use of a .gitignore file 34 | - Remove historical commits exposing sensitive data deep in your repository 35 | 36 | ### Phase 3: Create your first action 37 | > **The goal of Phase 2 is to Create a simple GitHub Action and use it in a workflow.** 38 | 1. Go to the `hello world` [actions module](https://lab.github.com/github/hello-github-actions!) 39 | 1. Review the official [GitHub Actions resources](https://github.com/alwell-kevin/awesome-actions#official-resources). 40 | 41 | **In this phase, you’ll learn how to:** 42 | 43 | - Organize and identify workflow files 44 | - Add executable scripts 45 | - Create workflow and action blocks 46 | - Trigger workflows 47 | - Discover workflow logs 48 | 49 | ### Phase 4: Continuous Integration with Actions 50 | > **The goal of Phase 3 is to Learn how to create workflows that enable you to use Continuous Integration (CI) for your projects.** 51 | 1. Go to the `Continuous Integration` [actions module](https://lab.github.com/githubtraining/github-actions:-continuous-integration) 52 | 53 | **In this phase, you’ll learn how to:** 54 | 55 | - Describe CI and why it is necessary 56 | - Use and customize a templated workflow 57 | - Create CI workflows that match the team's needs and behaviors 58 | - Use the repository's source code and build artifacts (like compiled source code) across jobs in a workflow 59 | - Implement a unit testing framework using GitHub Actions 60 | - Create a workflow that runs tests and produces test reports 61 | - Set up a matrix build to create build artifacts for multiple target platforms 62 | - Save a repository's build artifacts 63 | - Access saved build artifacts 64 | - Choose virtual environments for the application's CI needs 65 | 66 | ### Phase 5: Publish your Artifact to GitHub Packages 67 | > **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.** 68 | 1. Go to the `Artifact Publishing` [actions module](https://lab.github.com/githubtraining/github-actions:-publish-to-github-packages) 69 | 70 | **In this phase, you’ll learn how to:** 71 | 72 | - Describe CD and why it is necessary 73 | - Use and customize a repository workflow 74 | - Create CD workflows that matches the team's needs and behaviors 75 | - Use the repository's source code to build artifacts and store them in the GitHub Packages 76 | - Save repository build artifacts 77 | - Access saved build artifacts 78 | 79 | ### Phase 6: Continuous Delivery 80 | > **FINAL: The goal of Phase 6 is to create a deployment workflow using Azure.** 81 | 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) 82 | 2. Choose a sample app, and deploy it to Azure. 83 | 84 | **In this phase, you’ll learn how to:** 85 | 86 | - Create multiple workflows 87 | - Configure Azure for deployment 88 | - Use secrets to store tokens 89 | - Deploy to staging and production 90 | - Practice using GitHub Actions 91 | 92 | ### Additional Documentation 93 | > **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.** 94 | 1. [All things GitHub](https://help.github.com/en/github) 95 | 1. [Understanding Actions](https://help.github.com/en/github/automating-your-workflow-with-github-actions/about-github-actions#core-concepts-for-github-actions) 96 | 1. [Creating a workflow](https://help.github.com/en/github/automating-your-workflow-with-github-actions/configuring-a-workflow) 97 | 98 | --------------------------------------------------------------------------------