diff --git a/.github/steps/-step.txt b/.github/steps/-step.txt index 00750ed..b8626c4 100644 --- a/.github/steps/-step.txt +++ b/.github/steps/-step.txt @@ -1 +1 @@ -3 +4 diff --git a/README.md b/README.md index 9acb46b..36c9aa8 100644 --- a/README.md +++ b/README.md @@ -14,47 +14,30 @@ _Create workflows that enable you to use Continuous Integration (CI) for your pr -## Step 3: Upload test reports +## Step 4: Add branch protections -_The workflow has finished running! :sparkles:_ +_Great job uploading test reports! :partying_face:_ -So what do we do when we need the work product of one job in another? We can use the built-in [artifact storage](https://docs.github.com/actions/advanced-guides/storing-workflow-data-as-artifacts) to save artifacts created from one job to be used in another job within the same workflow. +Take a look at the merge box, you'll notice you can merge this even though the review process hasn't been met. -To upload artifacts to the artifact storage, we can use an action built by GitHub: [`actions/upload-artifacts`](https://github.com/actions/upload-artifact). +Protected branches ensure that collaborators on your repository cannot make irrevocable changes to branches. Enabling protected branches also allows you to enable other optional checks and requirements, like required status checks and required reviews. -### :keyboard: Activity: Upload test reports +### :keyboard: Activity: Add branch protections -1. Edit your workflow file. -1. Update the `Run markdown lint` step in your `build` job to use `vfile-reporter-json` and output the results to `remark-lint-report.json`. -1. Add a step to your `build` job that uses the `upload-artifact` action. This step should upload the `remark-lint-report.json` file generated by the updated `Run markdown lint` step. -1. Your new `build` should look like this: - - ```yml - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Run markdown lint - run: | - npm install remark-cli remark-preset-lint-consistent vfile-reporter-json - npx remark . --use remark-preset-lint-consistent --report vfile-reporter-json 2> remark-lint-report.json - - - uses: actions/upload-artifact@v3 - with: - name: remark-lint-report - path: remark-lint-report.json - ``` - -1. Commit your change to this branch. -1. Wait about 20 seconds and then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/actions) will automatically update to the next step. - -Like the upload action to send artifacts to the storage, you can use the download action to download these previously uploaded artifacts from the `build` job: [`actions/download-artifact`](https://github.com/actions/download-artifact). For brevity, we'll skip that step for this course. +1. Go to **Branches** settings. You can navigate to that page manually by selecting the right-most tab in the top of the repository called **Settings** and then clicking **Branches**. +1. Click **Add branch protection rule** under "Branch protection rules". +1. Type `main` in **Branch name pattern**. +1. Check **Require a pull request before merging**. +1. Uncheck **Require approvals**. +1. Check **Require status checks to pass before merging**. +1. Check all build and test jobs that you'd like to see in the newly visible gray box. +1. Click **Create**. +1. _Once you turn on branch protection, Actions can no longer push directly to the `main` branch. Wait about 20 seconds and then go to the `ci` branch. [GitHub Actions](https://docs.github.com/actions) will automatically update to the next step on the `ci` branch. You'll need to follow instructions on this branch._