Skip to content

Adiciona tratamento de erros para inscrição em atividades e mensagens… #1

Adiciona tratamento de erros para inscrição em atividades e mensagens…

Adiciona tratamento de erros para inscrição em atividades e mensagens… #1

name: Step 3 # Copilot edits
on:
push:
branches:
- "accelerate-with-copilot"
paths:
- "src/static/**"
permissions:
contents: read
actions: write
issues: write
env:
STEP_4_FILE: ".github/steps/4-copilot-on-github.md"
jobs:
find_exercise:
name: Find Exercise Issue
uses: skills/exercise-toolkit/.github/workflows/find-exercise-issue.yml@v0.1.0
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
- name: Check participant info on activity cards
id: check-user-work
run: |
# Checks to perform
checks='{
"app_js": {
"name": "app.js",
"passed": true,
"message": ""
},
"styles_css": {
"name": "styles.css",
"passed": true,
"message": ""
}
}'
# Check for participants info in app.js
file="src/static/app.js"
keyphrase='participant'
minimum_occurences=3
found_occurences=$(grep -o "$keyphrase" "$file" | wc -l)
if [ "$found_occurences" -lt "$minimum_occurences" ]; then
checks=$(echo $checks | jq '.app_js.passed = false')
checks=$(echo $checks | jq '.app_js.message = "Please use Copilot to update the web application activity cards to show participant info."')
fi
# Check for participants info in styles.css
file="src/static/styles.css"
keyphrase='participant'
minimum_occurences=1
found_occurences=$(grep -o "$keyphrase" "$file" | wc -l)
if [ "$found_occurences" -lt "$minimum_occurences" ]; then
checks=$(echo $checks | jq '.styles_css.passed = false')
checks=$(echo $checks | jq '.styles_css.message = "Please use Copilot to update the web application styling to support participant info."')
fi
# Verify all checks passed
passed=$(echo $checks | jq '. | all(.passed?)')
# Flatten to an array for returning. Allows iteration during rendering.
results=$(echo $checks | jq 'to_entries | map({name: .key} + .value)')
# Save pass status to output
echo "passed=$passed" >> $GITHUB_OUTPUT
# Save results to output
echo 'results<<EOF' >> $GITHUB_OUTPUT
echo $results >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build message - step results
id: build-message-step-results
uses: skills/action-text-variables@v1
with:
template-file: skills-response-templates/step-feedback/step-results.md
template-vars: '{
"step_number": 3,
"passed": ${{ steps.check-user-work.outputs.passed }},
"results_table": ${{ steps.check-user-work.outputs.results }},
"tips": [
"Copilot is becoming more capable everyday. Make sure to always be experimenting!",
"Try testing what Copilot can do. Something like: Add a dark mode toggle in the top right."
]
}'
- name: Create comment - step results
run: |
gh issue comment "$ISSUE_URL" \
--body "$COMMENT_BODY" \
--edit-last
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COMMENT_BODY: ${{ steps.build-message-step-results.outputs.updated-text }}
- name: Fail job if not all checks passed
if: steps.check-user-work.outputs.passed == 'false'
run: exit 1
# 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=4
- name: Update comment - step finished
run: |
gh issue comment "$ISSUE_URL" \
--body "$ISSUE_BODY"
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_4_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 3"
gh workflow enable "Step 4"
gh workflow enable "Step 4b"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}