mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-27 01:56:14 +01:00
Add templates and project workflow (#258)
* Add templates and project workflow * Fixed template typos
This commit is contained in:
parent
4a3f3d0f34
commit
4bfd4b1a12
80
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
80
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
# Bug report GitHub issue form
|
||||||
|
#
|
||||||
|
# This file needs to reside in the ".github/ISSUE_TEMPLATE/" folder.
|
||||||
|
|
||||||
|
name: Bug Report
|
||||||
|
description: Submit a bug report
|
||||||
|
labels:
|
||||||
|
- Bug
|
||||||
|
title: "Bug Report: "
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to submit a bug report to the DCC-EX team!
|
||||||
|
|
||||||
|
In order to help us to validate the bug and ascertain what's causing it, please provide as much information as possible in this form.
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Version
|
||||||
|
description: Please provide the version of EX-CommandStation in use.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Bug description
|
||||||
|
description: Please provide a clear and concise description of what the symptoms of the bug are.
|
||||||
|
placeholder: |
|
||||||
|
When attempting to drive a locomotive on the main track, it runs forwards, backwards, spins around, jumps up and down, blows the horn, and then stops.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: reproduction
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce the bug
|
||||||
|
description: Please provide the steps to reproduce the behaviour.
|
||||||
|
placeholder: |
|
||||||
|
1. Turn on the CommandStation and track power.
|
||||||
|
2. Connect Engine Driver to the CommandStation.
|
||||||
|
3. Select locomotive with address 123.
|
||||||
|
4. Throttle up to half speed.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: expectation
|
||||||
|
attributes:
|
||||||
|
label: Expected behaviour
|
||||||
|
description: Please provide a clear and concise description of what you expected to happen.
|
||||||
|
placeholder: |
|
||||||
|
The locomotive should accelerate smoothly to half speed in a forward direction.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: screenshots
|
||||||
|
attributes:
|
||||||
|
label: Screenshots
|
||||||
|
description: If applicable, upload any screenshots here.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: hardware
|
||||||
|
attributes:
|
||||||
|
label: Hardware in use
|
||||||
|
description: Please provide details of hardware in use including microcontroller, motor shield, and any other relevant information.
|
||||||
|
placeholder: |
|
||||||
|
Elegoo Mega2560
|
||||||
|
Arduino R3 motor shield
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: extra-context
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Please provide any other relevant information that could help us resolve this issue, for example a customised config.h file.
|
12
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
12
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# Configuration file for the template chooser
|
||||||
|
#
|
||||||
|
# This file needs to exist in the https://github.com/DCC-EX/.github repository in the ".github/ISSUE_TEMPLATE/" folder.
|
||||||
|
|
||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: DCC-EX Discord server
|
||||||
|
url: https://discord.gg/y2sB4Fp
|
||||||
|
about: For the best support experience, join our Discord server
|
||||||
|
- name: DCC-EX Contact and Support page
|
||||||
|
url: https://dcc-ex.com/support/index.html
|
||||||
|
about: For other support options, refer to our Contact & Support page
|
31
.github/ISSUE_TEMPLATE/documentation_update.yml
vendored
Normal file
31
.github/ISSUE_TEMPLATE/documentation_update.yml
vendored
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Documentation update GitHub issue form
|
||||||
|
#
|
||||||
|
# This file needs to reside in the ".github/ISSUE_TEMPLATE/" folder.
|
||||||
|
|
||||||
|
name: Documentation Update
|
||||||
|
description: Submit a request for documentation updates, or to report broken links or inaccuracies
|
||||||
|
title: "[Documentation Update]: "
|
||||||
|
labels:
|
||||||
|
- Needs Documentation
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Use this template to submit a request for updates to our documentation.
|
||||||
|
|
||||||
|
This can be used for general documentation requests if information is missing or lacking, or to correct issues with our existing documentation such as broken links, or inaccurate information.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: details
|
||||||
|
attributes:
|
||||||
|
label: Documentation details
|
||||||
|
description: Provide the details of what needs to be documented or corrected.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: page
|
||||||
|
attributes:
|
||||||
|
label: Page with issues
|
||||||
|
description: If reporting broken links or inaccuracies, please provide the link to the page here.
|
||||||
|
placeholder: https://dcc-ex.com/index.html
|
37
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
37
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Feature Request GitHub issue form
|
||||||
|
#
|
||||||
|
# This file needs to reside in the ".github/ISSUE_TEMPLATE/" folder.
|
||||||
|
|
||||||
|
name: Feature Request
|
||||||
|
description: Suggest a new feature
|
||||||
|
title: "[Feature Request]: "
|
||||||
|
labels:
|
||||||
|
- Enhancement
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Use this template to suggest a new feature for EX-CommandStation.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Problem/idea statement
|
||||||
|
description: Please provide the problem you're trying to solve, or share the idea you have.
|
||||||
|
placeholder: A clear and concise description of the problem you're trying to solve, or the idea you have. For example, I'm always frustrated when...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: Alternatives or workarounds
|
||||||
|
description: Please provide any alternatives or workarounds you currently use.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: context
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Add any other context, screenshots, or files related to the feature request here.
|
39
.github/ISSUE_TEMPLATE/support_request.yml
vendored
Normal file
39
.github/ISSUE_TEMPLATE/support_request.yml
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# Support Request GitHub issue form
|
||||||
|
#
|
||||||
|
# This file needs to reside in the ".github/ISSUE_TEMPLATE/" folder.
|
||||||
|
|
||||||
|
name: Support Request
|
||||||
|
description: Request support or assistance
|
||||||
|
title: "[Support Request]: "
|
||||||
|
labels:
|
||||||
|
- Support Request
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Use this template to request support or assistance with EX-CommandStation.
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Version
|
||||||
|
description: Please provide the version of the software in use.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Issue description
|
||||||
|
description: Please describe the issue being encountered as accurately and detailed as possible.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: hardware
|
||||||
|
attributes:
|
||||||
|
label: Hardware
|
||||||
|
description: If appropriate, please provide details of the hardware in use.
|
||||||
|
placeholder: |
|
||||||
|
Elegoo Mega2560
|
||||||
|
Arduino Motor Shield R3
|
24
.github/ISSUE_TEMPLATE/to_do.yml
vendored
Normal file
24
.github/ISSUE_TEMPLATE/to_do.yml
vendored
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# General To Do item GitHub issue form
|
||||||
|
#
|
||||||
|
# This file needs to reside in the ".github/ISSUE_TEMPLATE/" folder.
|
||||||
|
|
||||||
|
name: To Do
|
||||||
|
description: Create a general To Do item
|
||||||
|
title: "[To Do]: "
|
||||||
|
labels:
|
||||||
|
- To Do
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Use this template to create an issue for a general task that needs to be done.
|
||||||
|
|
||||||
|
This is handy for capturing ad-hoc items that don't necessarily require code to be written or updated.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Task description
|
||||||
|
description: Provide the details of what needs to be done.
|
||||||
|
validations:
|
||||||
|
required: true
|
143
.github/workflows/new-items.yml
vendored
Normal file
143
.github/workflows/new-items.yml
vendored
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
# This workflow is to be used for all repositories to integrate with the DCC++ EX Beta Project.
|
||||||
|
# It will add all issues and pull requests for a repository to the project, and put in the correct status.
|
||||||
|
#
|
||||||
|
# Ensure "REPO_LABEL" is updated with the correct label for the repo stream of work.
|
||||||
|
name: Add Issue or Pull Request to Project
|
||||||
|
|
||||||
|
env:
|
||||||
|
REPO_LABEL: ${{ secrets.PROJECT_STREAM_LABEL }}
|
||||||
|
PROJECT_NUMBER: 7
|
||||||
|
ORG: DCC-EX
|
||||||
|
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types:
|
||||||
|
- opened
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- ready_for_review
|
||||||
|
- opened
|
||||||
|
- review_requested
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
add_to_project:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Add labels
|
||||||
|
uses: andymckay/labeler@master
|
||||||
|
with:
|
||||||
|
add-labels: ${{ env.REPO_LABEL }}
|
||||||
|
|
||||||
|
- name: Generate token
|
||||||
|
id: generate_token
|
||||||
|
uses: tibdex/github-app-token@36464acb844fc53b9b8b2401da68844f6b05ebb0
|
||||||
|
with:
|
||||||
|
app_id: ${{ secrets.PROJECT_APP_ID }}
|
||||||
|
private_key: ${{ secrets. PROJECT_APP_KEY }}
|
||||||
|
|
||||||
|
- name: Get project data
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||||
|
run: |
|
||||||
|
gh api graphql -f query='
|
||||||
|
query($org: String!, $number: Int!) {
|
||||||
|
organization(login: $org){
|
||||||
|
projectNext(number: $number) {
|
||||||
|
id
|
||||||
|
fields(first:20) {
|
||||||
|
nodes {
|
||||||
|
id
|
||||||
|
name
|
||||||
|
settings
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' -f org=$ORG -F number=$PROJECT_NUMBER > project_data.json
|
||||||
|
|
||||||
|
echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
|
||||||
|
echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
|
||||||
|
echo 'BACKLOG_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Backlog") |.id' project_data.json) >> $GITHUB_ENV
|
||||||
|
echo 'TO_DO_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="To Do") |.id' project_data.json) >> $GITHUB_ENV
|
||||||
|
echo 'NEEDS_REVIEW_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Needs Review") |.id' project_data.json) >> $GITHUB_ENV
|
||||||
|
echo 'IN_PROGRESS_OPTION_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="In Progress") |.id' project_data.json) >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Add issue to project
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||||
|
ITEM_ID: ${{ github.event.issue.node_id }}
|
||||||
|
if: github.event_name == 'issues'
|
||||||
|
run: |
|
||||||
|
project_item_id="$( gh api graphql -f query='
|
||||||
|
mutation($project:ID!, $item:ID!) {
|
||||||
|
addProjectNextItem(input: {projectId: $project, contentId: $item}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' -f project=$PROJECT_ID -f item=$ITEM_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
|
||||||
|
echo 'PROJECT_ITEM_ID='$project_item_id >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Add PR to project
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||||
|
ITEM_ID: ${{ github.event.pull_request.node_id }}
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
run: |
|
||||||
|
project_item_id="$( gh api graphql -f query='
|
||||||
|
mutation($project:ID!, $item:ID!) {
|
||||||
|
addProjectNextItem(input: {projectId: $project, contentId: $item}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' -f project=$PROJECT_ID -f item=$ITEM_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
|
||||||
|
echo 'PROJECT_ITEM_ID='$project_item_id >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Set status - To Do
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||||
|
if: github.event_name == 'issues' && (contains(github.event.*.labels.*.name, 'Bug') || contains(github.event.*.labels.*.name, 'Support Request'))
|
||||||
|
run: |
|
||||||
|
gh api graphql -f query='
|
||||||
|
mutation(
|
||||||
|
$project: ID!
|
||||||
|
$item: ID!
|
||||||
|
$status_field: ID!
|
||||||
|
$status_value: String!
|
||||||
|
){
|
||||||
|
set_status: updateProjectNextItemField(input: {
|
||||||
|
projectId: $project
|
||||||
|
itemId: $item
|
||||||
|
fieldId: $status_field
|
||||||
|
value: $status_value
|
||||||
|
}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' -f project=$PROJECT_ID -f item=$PROJECT_ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.TO_DO_OPTION_ID }} --silent
|
||||||
|
|
||||||
|
- name: Set status - Review
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||||
|
if: github.event_name == 'issues' && (contains(github.event.*.labels.*.name, 'Unit Tested') || contains(github.event.*.labels.*.name, 'Regression Tested') || contains(github.event.*.labels.*.name, 'Needs Review')) || github.event_name == 'pull_request'
|
||||||
|
run: |
|
||||||
|
gh api graphql -f query='
|
||||||
|
mutation(
|
||||||
|
$project: ID!
|
||||||
|
$item: ID!
|
||||||
|
$status_field: ID!
|
||||||
|
$status_value: String!
|
||||||
|
){
|
||||||
|
set_status: updateProjectNextItemField(input: {
|
||||||
|
projectId: $project
|
||||||
|
itemId: $item
|
||||||
|
fieldId: $status_field
|
||||||
|
value: $status_value
|
||||||
|
}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' -f project=$PROJECT_ID -f item=$PROJECT_ITEM_ID -f status_field=$STATUS_FIELD_ID -f status_value=${{ env.NEEDS_REVIEW_OPTION_ID }} --silent
|
Loading…
Reference in New Issue
Block a user