Skip to content

Commit 3b1d991

Browse files
authored
Merge pull request #3 from github/update-workshop
Update guided workshop
2 parents 23cb13e + fbf175a commit 3b1d991

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1319
-81
lines changed

.DS_Store

8 KB
Binary file not shown.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules
2+
.next

.vscode/settings.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"cSpell.words": [
3+
"CODEOWNERS",
4+
"codespace",
5+
"Codespaces",
6+
"containerapp",
7+
"creds",
8+
"devcontainer",
9+
"devcontainers",
10+
"prebuild"
11+
]
12+
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This repository contains the project for both a guided workshop and the Modern D
44

55
## Getting started
66

7-
**[Get started learning about development and DevOps with GitHub!](./content/README.md)**
7+
> **[Get started learning about development and DevOps with GitHub!](./content/README.md)**
88
99
## License
1010

content/.DS_Store

6 KB
Binary file not shown.

content/README.md

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,23 @@
11
# Exploring modern DevOps
22

3-
This repository is built as a resource for developers and other DevOps professionals to build core skills on creating and deploying software with GitHub. The repository contains an application written using [Next.js](https://nextjs.org/) with a [MongoDB](https://www.mongodb.com/) backend, and the beginnings of end-to-end testing with [Cypress](https://www.cypress.io/).
3+
This repository is built as a resource to begin exploring GitHub and [DevOps](https://en.wikipedia.org/wiki/DevOps). Working through either a [guided workshop](./guided-workshop/) or a [challenge-based approach](./what-the-hack/Student/), you will learn the core concepts of DevOps and features available on GitHub to support you.
44

5-
## Required resources
5+
The workshop is centered around an application (included in this repository) written using [Next.js](https://nextjs.org/) with a [MongoDB](https://www.mongodb.com/) backend, and the beginnings of end-to-end testing with [Cypress](https://www.cypress.io/). You can use this repository as a template for creating your own projects, or walk through the available workshop and resources.
66

7-
### Local development
7+
## Getting started with DevOps and GitHub
88

9-
To run the project locally, you will need the following resources:
9+
[GitHub is built on GitHub](./how-github-uses-github.md). We use [GitHub Actions](./automation.md) for [automation](./guided-workshop/resources/automation.md). We use [GitHub Advanced Security](https://github.com/features/security) to secure the development pipeline. We use [GitHub Codespaces](https://github.com/features/codespaces) to [write code](./guided-workshop/exercises/3-codespaces.md). And we use [GitHub Copilot](https://github.com/features/copilot) as an AI pair programmer. You can learn more about how we use [GitHub](./guided-workshop/resources/how-github-uses-github.md) to create GitHub and manage our DevOps processes, and begin exploring the features available. You can also gain hands-on experience by completing the workshops highlighted below.
1010

11-
- [Node.js](https://nodejs.org/)
12-
- [MongoDB](https://www.mongodb.com/try/download/community)
11+
## Workshop formats
1312

14-
Alternatively, you could use a [dev container](https://code.visualstudio.com/docs/devcontainers/containers) by moving the [.devcontainer solution](./what-the-hack/Coach/.devcontainer) folder to the root of the project and opening the project with [Visual Studio Code](https://code.visualstudio.com/).
13+
### Step-by-step guided workshop
1514

16-
### Cloud deployment
15+
If you prefer a more guided experience, you can work through the [step-by-step workshop](./guided-workshop/). The workshop contains step-by-step instructions to complete the tasks and supporting information to learn more about the technology.
1716

18-
The workshop contains the necessary files to deploy the project to [Azure Container Apps](https://learn.microsoft.com/azure/container-apps/overview) with a [Azure Cosmos DB for MongoDB](https://learn.microsoft.com/azure/cosmos-db/mongodb/introduction) backend. You can use your Azure account to perform these steps, or [create a trial](https://azure.microsoft.com/free/).
19-
20-
## Formats
17+
> **[Begin the guided workshop!](./guided-workshop/README.md)**
2118
2219
### Challenge-based
2320

24-
Many learners find the best results if they explore technology by performing the tasks without step-by-step instructions. To support this style, we have built a workshop using a format modeled from Microsoft's What the Hack. A set of challenges is provided in the [Student folder](./what-the-hack/Student/), where you begin by first opening the project and progressing through a set of tasks typical of a developer using DevOps processes.
25-
26-
**[Begin the challenge-based workshop!](./what-the-hack/README.md)**
27-
28-
> The [Coach folder](./what-the-hack/Coach/) contains the solution. This is to be used by the mentors at your event, or if you get stuck.
29-
30-
### Step-by-step
21+
Many learners find the best results if they explore technology by performing the tasks without step-by-step instructions. To support this style, we have built a workshop using a format modeled from Microsoft's What the Hack. A set of challenges is provided in the [Student folder](./what-the-hack/Student/), where you begin by first opening the project and progressing through a set of tasks typical of a developer using DevOps processes. Solution files and other tips are available in the [Coach folder](./what-the-hack/Coach/), including a couple of [resource files](./what-the-hack/Coach/resources).
3122

32-
A [step-by-step workshop](./guided-workshop/) is currently being built.
23+
> **[Begin the challenge-based workshop!](./what-the-hack/README.md)**
File renamed without changes.
81 KB
Binary file not shown.

content/guided-workshop/.DS_Store

6 KB
Binary file not shown.

content/guided-workshop/README.md

Lines changed: 53 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,53 @@
1-
# Running the in Codespaces
2-
3-
The repository can be configured with a [dev container](https://code.visualstudio.com/docs/remote/create-dev-container) which can be used with Codespaces. The container uses Docker Compose to combine the [Cypress](https://github.com/cypress-io/cypress-docker-images) image for web app dev and [MongoDB](https://www.mongodb.com/compatibility/docker) for the database.
4-
5-
To run the project in Codespaces:
6-
7-
1. Copy the **.devcontainer** folder to the root of the repository.
8-
1. Commit and push the changes to GitHub.
9-
1. Open the repository in GitHub, and create a [Codespaces secret](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-encrypted-secrets-for-your-codespaces) to store the MongoDB connection string by:
10-
1. Selecting **Settings** > **Secrets and variables** > **Codespaces** > **New repository secret**.
11-
2. Set the name to **MONGODB_URI**
12-
3. Set the secret to **mongodb://localhost**
13-
4. Select **Add Secret**
14-
1. Select **Code** to return to the main page for the repository.
15-
1. To launch the repository, select **Code** > **Codespaces** > **Create codespace on main**.
16-
1. After the codespace is loaded, open a new terminal by selecting **Ctl** **`** on your keyboard.
17-
1. In the terminal, run the following to install the packages and start the server:
18-
```bash
19-
npm install
20-
npm run dev
21-
```
22-
1. Open the site by selecting **Open Browser** in the lower right corner of the Codespace window.
1+
# Modern DevOps with GitHub
2+
3+
[DevOps](https://en.wikipedia.org/wiki/DevOps) is a [portmanteau](https://www.merriam-webster.com/dictionary/portmanteau) of **development** and **operations**. At its core is a desire to bring development practices more inline with operations, and operations practices more inline with development. This fosters better communication and collaboration between teams, breaks down barriers, and gives everyone an investment in ensuring customers are delighted by the software we ship.
4+
5+
This workshop is built to help guide you through some of the most common DevOps tasks on GitHub. You'll explore:
6+
7+
- Managing projects with [GitHub Issues](https://github.com/features/issues)
8+
- Creating a development environment with [GitHub Codespaces](https://github.com/features/codespaces)
9+
- Using [GitHub Copilot](https://github.com/features/copilot) as your AI pair programmer
10+
- Securing the development pipeline with [GitHub Advanced Security](https://github.com/features/security)
11+
- Automating provisioning and deployment with [GitHub Actions](https://github.com/features/actions)
12+
13+
## Prerequisites
14+
15+
This workshop assumes you are familiar with:
16+
17+
- development, however strong coding skills are not required (solution files are provided).
18+
- the cloud, and how resources can be hosted by different providers.
19+
20+
## Required resources
21+
22+
To complete this workshop, you will need the following:
23+
24+
- A [GitHub account](https://github.com/join)
25+
- An [Azure account](https://azure.microsoft.com/en-us/free/) if you wish to deploy your project
26+
27+
### Cloud consumption
28+
29+
This workshop does use both GitHub and (optionally) Azure cloud services. Below is the information you will need about potential costs:
30+
31+
- The GitHub Security and GitHub Actions features used during this workshop are at levels which are free for public repositories.
32+
- When using GitHub Codespaces, you have 60 free core hours available which will be more than sufficient for most learners.
33+
- GitHub Copilot does require a subscription, however a [free trial for GitHub Copilot](https://docs.github.com/en/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot) is available. The coding exercise does not require the use of GitHub Copilot.
34+
- If you choose to deploy to Azure (the last two exercises), there is a cost of around $6 US. This amount is covered by creating a new [Azure account](https://azure.microsoft.com/en-us/free/).
35+
36+
## Getting started
37+
38+
Ready to get started? Let's go! The workshop scenario imagines you as a developer volunteering your time for a pet adoption center. You will work through the process of creating a development environment, creating code, enabling security, automating processes, and optionally deploying the project.
39+
40+
0. [Setup your environment](exercises/0-setup.md) for the workshop
41+
1. [Enable Code Scanning](exercises/1-code-scanning.md) to ensure new code is secure
42+
2. [Create an issue](exercises/2-issues.md) to document a feature request
43+
3. [Create a codespace](exercises/3-codespaces.md) to start writing code
44+
4. [Implement testing](exercises/4-testing.md) to supplement continuous integration
45+
5. [Add a new feature](exercises/5-coding.md) to implement the feature
46+
6. [Use the GitHub flow](exercises/6-github-flow.md) to incorporate changes
47+
48+
If you wish, you can also close out your DevOps learning journey by deploying to the cloud. For purposes of this workshop, Azure is used, however the concepts are applicable to any cloud provider.
49+
50+
> **NOTE:** When deploying to a cloud environment, some charges may be incurred. For this workshop, when deploying to Azure and deleting the resources upon completion of the exercises, the charge should be less than $6 US.
51+
52+
7. [Add automation](exercises/7-automation.md) to create a deployment environment
53+
8. [Deploy your project](exercises/8-deployment.md) to publish your project to the cloud

0 commit comments

Comments
 (0)