From 0c6e677a2abe49cf2b97c163d99d57a48b669437 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 6 Dec 2024 12:52:47 +0000 Subject: [PATCH] Update to 2 in STEP and README.md --- .github/steps/-step.txt | 2 +- README.md | 80 ++++++++--------------------------------- 2 files changed, 16 insertions(+), 66 deletions(-) diff --git a/.github/steps/-step.txt b/.github/steps/-step.txt index d00491f..0cfbf08 100644 --- a/.github/steps/-step.txt +++ b/.github/steps/-step.txt @@ -1 +1 @@ -1 +2 diff --git a/README.md b/README.md index 89a0347..4ea68f4 100644 --- a/README.md +++ b/README.md @@ -14,75 +14,25 @@ _Use GitHub Actions to publish your project to a Docker image._ -## Step 1: Create the workflow file - -_Welcome to "Publish packages"! :wave:_ - -First, take a moment to examine the image below. It shows the relationship between _continuous integration_, _continuous delivery_ and _continuous deployment_. - -![](https://i.imgur.com/xZCkjmU.png) - -**Continuous integration** (CI) is a practice where developers integrate tested code into a shared branch several times per day. **Continuous delivery** (CD) is the next phase of **continuous integration** (CI) where we also make sure to package the code in a _release_ and store it somewhere - preferably, in an artifact repository. Lastly, **Continuous deployment** (CD) takes **continuous delivery** (CD) to the next level by directly deploying our releases to the world. - -[**Docker**](https://www.docker.com/why-docker) is an engine that allows you to run containers. -Containers are packages of software that can run reliably in different environments. Containers include everything needed to run the application. Containers are lightweight in comparison to virtual machines. A **Dockerfile** is a text document that contains all the commands and instructions necessary to build a Docker Image. A **Docker image** is an executable package comprised of code, dependencies, libraries, a runtime, environment variables, and configuration files. A **Docker container** is a runtime instance of a Docker Image. - -We'll start by creating the workflow file to publish a Docker image to GitHub Packages. - -### :keyboard: Activity: Create the workflow file - -1. Open a new browser tab, and work on the steps in your second tab while you read the instructions in this tab. -1. Navigate to the **Code** tab. -1. From the **main** branch dropdown, click on the **cd** branch. -1. Navigate to the `.github/workflows/` folder, then select **Add file** and click on **Create new file**. -1. In the **Name your file...** field, enter `publish.yml`. -1. Add the following to the `publish.yml` file: - ```yml - name: Publish to Docker - on: - push: - branches: - - main - permissions: - packages: write - contents: read - jobs: - publish: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - # Add your test steps here if needed... - - name: Docker meta - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/YOURNAME/publish-packages/game - tags: type=sha - - name: Login to GHCR - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Build container - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} +## Step 2: Add a Dockerfile + +_You created a publishing workflow! :tada:_ + +We will add a `Dockerfile` to the `cd` branch. The `Dockerfile` contains a set of instructions that get stored in a `Docker Image`. If you'd like, you can [learn more about Dockerfiles](https://docs.docker.com/engine/reference/builder/). + +### :keyboard: Activity: Add a Dockerfile + +1. In the `cd` branch, create `Dockerfile` at the project root and include: + ```dockerfile + FROM nginx:1.24-alpine + COPY . /usr/share/nginx/html ``` -1. Replace `YOURNAME` with your username. -1. Make sure that the image name is unique. 1. Commit your changes. -1. (optional) Create a pull request to view all the changes you'll make throughout this course. Click the **Pull Requests** tab, click **New pull request**, set `base: main` and `compare:cd`. 1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step.