feat: Initial draft of migration to issue-based flow #3
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 4 | |
on: | |
push: | |
branches: | |
- main | |
permissions: | |
contents: write | |
actions: write | |
issues: write | |
env: | |
REVIEW_FILE: ".github/steps/x-review.md" | |
jobs: | |
find_exercise: | |
name: Find Exercise Issue | |
uses: skills/exercise-toolkit/.github/workflows/find-exercise-issue.yml@v0.5.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/exercise-toolkit | |
path: exercise-toolkit | |
ref: v0.5.0 | |
- name: Update comment - checking work | |
run: | | |
gh issue comment "$ISSUE_URL" \ | |
--body-file exercise-toolkit/markdown-templates/step-feedback/checking-work.md | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# START: Check practical exercise | |
- name: Check for setup file | |
id: check-setup-file | |
continue-on-error: true | |
uses: skills/action-keyphrase-checker@v1 | |
with: | |
text-file: setup.sh | |
keyphrase: "install sl" | |
case-sensitive: false | |
minimum-occurrences: 1 | |
- name: Build message - step results | |
id: build-message-step-results | |
uses: skills/action-text-variables@v2 | |
with: | |
template-file: exercise-toolkit/markdown-templates/step-feedback/step-results-table.md | |
template-vars: | | |
step_number: 2 | |
passed: ${{ !contains(steps.*.outcome, 'failure') }} | |
results_table: | |
- description: "Added setup.sh file" | |
passed: ${{ steps.check-setup-file.outcome == 'success' }} | |
- 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: contains(steps.*.outcome, 'failure') | |
run: exit 1 | |
# END: Check practical exercise | |
- name: Build message - step finished | |
id: build-message-step-finish | |
uses: skills/action-text-variables@v2 | |
with: | |
template-file: exercise-toolkit/markdown-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" | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
ISSUE_BODY: ${{ steps.build-message-step-finish.outputs.updated-text }} | |
post_review_content: | |
name: Post review content | |
needs: [find_exercise, check_step_work] | |
runs-on: ubuntu-latest | |
if: | | |
!github.event.repository.is_template && | |
github.head_ref == 'update-game' && | |
github.event.pull_request.merged == true | |
env: | |
ISSUE_URL: ${{ needs.find_exercise.outputs.issue-url }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Create comment - add step content | |
run: | | |
gh issue comment "$ISSUE_URL" \ | |
--body-file "$REVIEW_FILE" | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
finish_exercise: | |
name: Finish Exercise | |
needs: [find_exercise, post_review_content] | |
uses: skills/exercise-toolkit/.github/workflows/finish-exercise.yml@v0.5.0 | |
with: | |
issue-url: ${{ needs.find_exercise.outputs.issue-url }} | |
disable_workflow: | |
name: Disable this workflow | |
needs: [find_exercise, post_review_content] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Disable current workflow | |
run: gh workflow disable "${{github.workflow}}" | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |