Skip to content

Add validation comment for maximum participants in signup function #1

Add validation comment for maximum participants in signup function

Add validation comment for maximum participants in signup function #1

name: Step 2 # Copilot chat
on:
push:
branches:
- "accelerate-with-copilot"
paths:
- "src/app.py"
permissions:
contents: read
actions: write
issues: write
env:
STEP_3_FILE: ".github/steps/3-copilot-edits.md"
jobs:
find_exercise:
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_URL: ${{ needs.find_exercise.outputs.issue-url }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get response templates
uses: actions/checkout@v4
with:
repository: skills/response-templates
path: skills-response-templates
- name: Update comment - checking work
run: |
gh issue comment "$ISSUE_URL" \
--body-file skills-response-templates/step-feedback/checking-work.md \
--edit-last
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# START: Check practical exercise
# Search for the comment about registration validation
- name: Check contents of 'src/app.py'
run: |
# File and expected phrase
file="src/app.py"
keyphrase="Validate student is not already signed up"
# Fail the workflow if the file content is missing
if ! grep -q "$keyphrase" "$file"; then
message="It seems our registration validation bug has not been fixed. Please try again."
gh issue comment "$ISSUE_URL" \
--body "$message" \
--edit-last
exit 1
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Check the number of activities in the file by counting the json keys
- name: Check for additional student activities
run: |
# File and phrase to count
file="src/app.py"
keyphrase='"description":'
minimum_occurences=4
# Get the number of occurences of the keyphrase
found_occurences=$(grep -o "$keyphrase" "$file" | wc -l)
# If the number of occurences is less than the minimum, fail the workflow and send a message
if [ "$found_occurences" -lt "$minimum_occurences" ]; then
message="No new student activities were found. Please use Copilot to generate some and try again."
gh issue comment "$ISSUE_URL" \
--body "$message" \
--edit-last
exit 1
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# END: Check practical exercise
- name: Build message - step finished
id: build-message-step-finish
uses: skills/action-text-variables@v1
with:
template-file: skills-response-templates/step-feedback/step-finished-prepare-next-step.md
template-vars: |
next_step_number=3
- name: Update comment - step finished
run: |
gh issue comment "$ISSUE_URL" \
--body "$ISSUE_BODY" \
--edit-last
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_BODY: ${{ steps.build-message-step-finish.outputs.updated-text }}
post_next_step_content:
name: Post next step content
needs: [find_exercise, check_step_work]
runs-on: ubuntu-latest
env:
ISSUE_URL: ${{ needs.find_exercise.outputs.issue-url }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get response templates
uses: actions/checkout@v4
with:
repository: skills/response-templates
path: skills-response-templates
- name: Create comment - add step content
run: |
gh issue comment "$ISSUE_URL" \
--body-file "$STEP_3_FILE"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create comment - watching for progress
run: |
gh issue comment "$ISSUE_URL" \
--body-file skills-response-templates/step-feedback/watching-for-progress.md
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Disable current workflow and enable next one
run: |
gh workflow disable "Step 2"
gh workflow enable "Step 3"
gh workflow enable "Step 3b"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}