Skip to content

Add my first file

Add my first file #1

name: Step 3 # Open a pull request
# Checks if the learner completed tasks for step 3.
# - Triggers when the user creates or edits the pull request.
# - Checks the pull request title and description. Adds a PR comment.
# - If all checks pass, the workflow is disabled so it doesn't run again. As such, workflow status badge will change to green.
on:
pull_request:
branches:
- main
types:
- opened
- synchronize
- reopened
- edited
permissions:
contents: read
actions: write
issues: write
env:
STEP_4_FILE: ".github/steps/4-merge-your-pull-request.md"
jobs:
find_exercise:
if: |
!github.event.repository.is_template &&
github.head_ref == 'my-first-branch'
name: Find Exercise Issue
uses: skills/exercise-toolkit/.github/workflows/[email protected]
check_step_work:
name: Check step work
runs-on: ubuntu-latest
needs: find_exercise
env:
ISSUE_REPOSITORY: ${{ github.repository }}
ISSUE_NUMBER: ${{ needs.find_exercise.outputs.issue-number }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get response templates
uses: actions/checkout@v4
with:
repository: skills/exercise-toolkit
path: exercise-toolkit
ref: v0.7.0
- name: Find last comment
id: find-last-comment
uses: peter-evans/find-comment@v3
with:
repository: ${{ env.ISSUE_REPOSITORY }}
issue-number: ${{ env.ISSUE_NUMBER }}
direction: last
- name: Update comment - checking work
uses: GrantBirki/[email protected]
with:
repository: ${{ env.ISSUE_REPOSITORY }}
issue-number: ${{ env.ISSUE_NUMBER }}
comment-id: ${{ steps.find-last-comment.outputs.comment-id }}
file: exercise-toolkit/markdown-templates/step-feedback/checking-work.md
edit-mode: replace
# START: Check practical exercise
- name: Check PR title for keyphrase
id: check-pr-title
continue-on-error: true
uses: skills/action-keyphrase-checker@v1
with:
keyphrase: "Add my first file"
text: ${{ github.event.pull_request.title }}
case-sensitive: false
- name: Check PR description is non-empty
id: check-pr-description
continue-on-error: true
run: |
if [ -n "$PR_BODY" ]; then
echo "STEP_MESSAGE=Pull request description" >> $GITHUB_OUTPUT
else
echo "STEP_MESSAGE=Pull request description is empty" >> $GITHUB_OUTPUT
exit 1
fi
env:
PR_BODY: ${{ github.event.pull_request.body }}
- name: Update comment - step results
uses: GrantBirki/[email protected]
with:
repository: ${{ env.ISSUE_REPOSITORY }}
issue-number: ${{ env.ISSUE_NUMBER }}
comment-id: ${{ steps.find-last-comment.outputs.comment-id }}
file: exercise-toolkit/markdown-templates/step-feedback/step-results-table.md
edit-mode: replace
vars: |
step_number: 3
results_table:
- description: "Pull Request title matches"
passed: ${{ steps.check-pr-title.outcome == 'success' }}
- description: ${{ steps.check-pr-description.outputs.STEP_MESSAGE }}
passed: ${{ steps.check-pr-description.outcome == 'success' }}
- name: Fail job if not all checks passed
if: contains(steps.*.outcome, 'failure')
run: exit 1
post_next_step_content:
name: Post next step content
needs: [find_exercise, check_step_work]
runs-on: ubuntu-latest
env:
ISSUE_REPOSITORY: ${{ github.repository }}
ISSUE_NUMBER: ${{ needs.find_exercise.outputs.issue-number }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get response templates
uses: actions/checkout@v4
with:
repository: skills/exercise-toolkit
path: exercise-toolkit
ref: v0.7.0
- name: Create comment - step finished
uses: GrantBirki/[email protected]
with:
repository: ${{ env.ISSUE_REPOSITORY }}
issue-number: ${{ env.ISSUE_NUMBER }}
file: exercise-toolkit/markdown-templates/step-feedback/step-finished-prepare-next-step.md
vars: |
next_step_number: 4
- name: Create comment - add step content
uses: GrantBirki/[email protected]
with:
repository: ${{ env.ISSUE_REPOSITORY }}
issue-number: ${{ env.ISSUE_NUMBER }}
file: ${{ env.STEP_4_FILE }}
- name: Create comment - watching for progress
uses: GrantBirki/[email protected]
with:
repository: ${{ env.ISSUE_REPOSITORY }}
issue-number: ${{ env.ISSUE_NUMBER }}
file: exercise-toolkit/markdown-templates/step-feedback/watching-for-progress.md
- name: Disable current workflow and enable next one
run: |
gh workflow disable "${{github.workflow}}"
gh workflow enable "Step 4"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}