name: Step 5 # Setup the React presentation tier on: push: branches: - "build-octofit-app" paths: - "octofit-tracker/frontend/**" permissions: contents: read actions: write issues: write env: STEP_6_FILE: ".github/steps/6-copilot-on-github.md" jobs: find_exercise: name: Find Exercise Issue uses: skills/exercise-toolkit/.github/workflows/find-exercise-issue.yml@v0.9.0 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@v6 - name: Get response templates uses: actions/checkout@v6 with: repository: skills/exercise-toolkit path: exercise-toolkit ref: v0.9.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/comment@v2.1.1 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 for codespace API endpoint in Activities.jsx id: check-activities continue-on-error: true uses: skills/action-keyphrase-checker@v2.0.0 with: text-file: octofit-tracker/frontend/src/components/Activities.jsx keyphrase: '-8000.app.github.dev/api/activities' minimum-occurrences: 1 case-sensitive: false - name: Check for codespace API endpoint in Leaderboard.jsx id: check-leaderboard continue-on-error: true uses: skills/action-keyphrase-checker@v2.0.0 with: text-file: octofit-tracker/frontend/src/components/Leaderboard.jsx keyphrase: '-8000.app.github.dev/api/leaderboard' minimum-occurrences: 1 case-sensitive: false - name: Check for codespace API endpoint in Teams.jsx id: check-teams continue-on-error: true uses: skills/action-keyphrase-checker@v2.0.0 with: text-file: octofit-tracker/frontend/src/components/Teams.jsx keyphrase: '-8000.app.github.dev/api/teams' minimum-occurrences: 1 case-sensitive: false - name: Check for codespace API endpoint in Users.jsx id: check-users continue-on-error: true uses: skills/action-keyphrase-checker@v2.0.0 with: text-file: octofit-tracker/frontend/src/components/Users.jsx keyphrase: '-8000.app.github.dev/api/users' minimum-occurrences: 1 case-sensitive: false - name: Check for codespace API endpoint in Workouts.jsx id: check-workouts continue-on-error: true uses: skills/action-keyphrase-checker@v2.0.0 with: text-file: octofit-tracker/frontend/src/components/Workouts.jsx keyphrase: '-8000.app.github.dev/api/workouts' minimum-occurrences: 1 case-sensitive: false - name: Update comment - step results uses: GrantBirki/comment@v2.1.1 with: repository: ${{ env.ISSUE_REPOSITORY }} issue-number: ${{ env.ISSUE_NUMBER }} comment-id: ${{ steps.find-last-comment.outputs.comment-id }} edit-mode: replace file: exercise-toolkit/markdown-templates/step-feedback/step-results-table.md vars: | step_number: 5 results_table: - description: "Check activities for the API endpoint" passed: ${{ steps.check-activities.outcome == 'success' }} - description: "Check leaderboard for the API endpoint" passed: ${{ steps.check-leaderboard.outcome == 'success' }} - description: "Check teams for the API endpoint" passed: ${{ steps.check-teams.outcome == 'success' }} - description: "Check users for the API endpoint" passed: ${{ steps.check-users.outcome == 'success' }} - description: "Check workouts for the API endpoint" passed: ${{ steps.check-workouts.outcome == 'success' }} # END: Check practical exercise - 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@v6 - name: Get response templates uses: actions/checkout@v6 with: repository: skills/exercise-toolkit path: exercise-toolkit ref: v0.9.0 - name: Create comment - step finished uses: GrantBirki/comment@v2.1.1 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: 6 - name: Create comment - add step content uses: GrantBirki/comment@v2.1.1 with: repository: ${{ env.ISSUE_REPOSITORY }} issue-number: ${{ env.ISSUE_NUMBER }} file: ${{ env.STEP_6_FILE }} - name: Create comment - watching for progress uses: GrantBirki/comment@v2.1.1 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 6" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}