Skip to content

Create CODE_OF_CONDUCT.md #1

Create CODE_OF_CONDUCT.md

Create CODE_OF_CONDUCT.md #1

name: Step 3
on:
push:
branches:
- add-issue-templates
- prepare-to-collaborate
paths:
- ".github/ISSUE_TEMPLATE/**"
- "CODE_OF_CONDUCT.md"
permissions:
contents: read
actions: write
issues: write
env:
STEP_4_FILE: ".github/steps/4-prepare-for-the-inevitable.md"
jobs:
find_exercise:
if: |
!github.event.repository.is_template
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 branch - prepare-to-collaborate
uses: actions/checkout@v4
with:
path: prepare-to-collaborate
ref: prepare-to-collaborate
- name: Checkout branch - add-issue-templates
uses: actions/checkout@v4
with:
path: add-issue-templates
ref: add-issue-templates
- name: Get Exercise Toolkit
uses: actions/checkout@v4
with:
repository: skills/exercise-toolkit
path: exercise-toolkit
# Results table still uses old format. Needs refactored to update.
ref: v0.3.0
- name: Update comment - checking work
run: |
gh issue comment "$ISSUE_URL" \
--body-file exercise-toolkit/markdown-templates/step-feedback/checking-work.md \
--edit-last
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# START: Check practical exercise
- name: Check for Code of Conduct
id: check-code-of-conduct
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
// Result object to store the message
let result = {
name: 'CODE_OF_CONDUCT.md',
passed: true,
message: ''
}
// Check that file exists
if (!fs.existsSync('prepare-to-collaborate/CODE_OF_CONDUCT.md')) {
result.passed = false;
result.message = 'File is missing.';
}
return result;
- name: Check for Bug Report Templates
id: check-bug-report-template
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
// Result object to store the message
let result = {
name: 'bug_report.md',
passed: true,
message: ''
}
// Check that file exists
if (!fs.existsSync('add-issue-templates/.github/ISSUE_TEMPLATE/bug_report.md')) {
result.passed = false;
result.message = 'File is missing.';
}
return result;
- name: Check for Feature Request Templates
id: check-feature-request-template
uses: actions/github-script@v7
continue-on-error: true
with:
script: |
const fs = require('fs');
// Result object to store the message
let result = {
name: 'feature_request.md',
passed: true,
message: ''
}
// Check that file exists
if (!fs.existsSync('add-issue-templates/.github/ISSUE_TEMPLATE/feature_request.md')) {
result.passed = false;
result.message = 'File is missing.';
}
return result;
- name: Check all results
id: check-all-results
uses: actions/github-script@v7
with:
script: |
const checks = [
JSON.parse(process.env['check1']),
JSON.parse(process.env['check2']),
JSON.parse(process.env['check3'])
];
const result = checks.every(check => check.passed);
return result
env:
check1: ${{ steps.check-code-of-conduct.outputs.result }}
check2: ${{ steps.check-bug-report-template.outputs.result }}
check3: ${{ steps.check-feature-request-template.outputs.result }}
- 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.md
template-vars: >
{
"step_number": 3,
"passed": ${{ steps.check-all-results.outputs.result }},
"results_table": [
${{ steps.check-code-of-conduct.outputs.result }},
${{ steps.check-bug-report-template.outputs.result }},
${{ steps.check-feature-request-template.outputs.result }}
]
}
- 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-all-results.outputs.result == 'false'
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: 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 Exercise Toolkit
uses: actions/checkout@v4
with:
repository: skills/exercise-toolkit
path: exercise-toolkit
ref: v0.6.0
- 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 exercise-toolkit/markdown-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" || true
gh workflow enable "Step 4" || true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}