Add validation comment for maximum participants in signup function #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |