Compare commits
8 Commits
crunchyman
...
crunchyman
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e350c315e3 | ||
|
|
c4cf104a30 | ||
|
|
37278292bc | ||
|
|
31f98c6521 | ||
|
|
b892d9743a | ||
|
|
9dc5e75760 | ||
|
|
16f4d4b932 | ||
|
|
7fef5ab488 |
5
.changeset/fifty-squids-wear.md
Normal file
5
.changeset/fifty-squids-wear.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"task-master-ai": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Add CI for testing
|
||||||
5
.changeset/red-lights-mix.md
Normal file
5
.changeset/red-lights-mix.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"task-master-ai": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix github actions creating npm releases on next branch push
|
||||||
61
.github/workflows/ci.yml
vendored
Normal file
61
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- next
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- next
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
cache: "npm"
|
||||||
|
|
||||||
|
- name: Cache node_modules
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
node_modules
|
||||||
|
*/*/node_modules
|
||||||
|
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-node-
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: npm ci
|
||||||
|
timeout-minutes: 2
|
||||||
|
|
||||||
|
- name: Run Tests
|
||||||
|
run: |
|
||||||
|
npm run test:coverage -- --coverageThreshold '{"global":{"branches":0,"functions":0,"lines":0,"statements":0}}' --detectOpenHandles --forceExit
|
||||||
|
env:
|
||||||
|
NODE_ENV: test
|
||||||
|
CI: true
|
||||||
|
FORCE_COLOR: 1
|
||||||
|
timeout-minutes: 15
|
||||||
|
|
||||||
|
- name: Upload Test Results
|
||||||
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: test-results-node
|
||||||
|
path: |
|
||||||
|
test-results
|
||||||
|
coverage
|
||||||
|
junit.xml
|
||||||
|
retention-days: 30
|
||||||
15
.github/workflows/release.yml
vendored
15
.github/workflows/release.yml
vendored
@@ -3,7 +3,6 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- next
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -15,9 +14,21 @@ jobs:
|
|||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 20
|
node-version: 20
|
||||||
|
cache: "npm"
|
||||||
|
|
||||||
|
- name: Cache node_modules
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
node_modules
|
||||||
|
*/*/node_modules
|
||||||
|
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-node-
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: npm install
|
run: npm ci
|
||||||
|
timeout-minutes: 2
|
||||||
|
|
||||||
- name: Create Release Pull Request or Publish to npm
|
- name: Create Release Pull Request or Publish to npm
|
||||||
uses: changesets/action@v1
|
uses: changesets/action@v1
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
# Task Master
|
# Task Master
|
||||||
|
|
||||||
|
[](https://github.com/eyaltoledano/claude-task-master/actions/workflows/ci.yml)
|
||||||
|
[](LICENSE)
|
||||||
|
[](https://badge.fury.io/js/task-master-ai)
|
||||||
|
|
||||||
### by [@eyaltoledano](https://x.com/eyaltoledano)
|
### by [@eyaltoledano](https://x.com/eyaltoledano)
|
||||||
|
|
||||||
A task management system for AI-driven development with Claude, designed to work seamlessly with Cursor AI.
|
A task management system for AI-driven development with Claude, designed to work seamlessly with Cursor AI.
|
||||||
|
|||||||
102
tasks/task_040.txt
Normal file
102
tasks/task_040.txt
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
# Task ID: 40
|
||||||
|
# Title: Implement Project Funding Documentation and Support Infrastructure
|
||||||
|
# Status: in-progress
|
||||||
|
# Dependencies: None
|
||||||
|
# Priority: medium
|
||||||
|
# Description: Create FUNDING.yml for GitHub Sponsors integration that outlines all financial support options for the Task Master project.
|
||||||
|
# Details:
|
||||||
|
This task involves creating a FUNDING.yml file to enable and manage funding options for the Task Master project:
|
||||||
|
|
||||||
|
**FUNDING.yml file**:
|
||||||
|
- Create a .github/FUNDING.yml file following GitHub's specifications
|
||||||
|
- Include configuration for multiple funding platforms:
|
||||||
|
- GitHub Sponsors (primary if available)
|
||||||
|
- Open Collective
|
||||||
|
- Patreon
|
||||||
|
- Ko-fi
|
||||||
|
- Liberapay
|
||||||
|
- Custom funding URLs (project website donation page)
|
||||||
|
- Research and reference successful implementation patterns from Vue.js, React, and TypeScript projects
|
||||||
|
- Ensure the FUNDING.yml contains sufficient information to guide users on how to support the project
|
||||||
|
- Include comments within the YAML file to provide context for each funding option
|
||||||
|
|
||||||
|
The implementation should maintain consistent branding and messaging with the rest of the Task Master project. Research at least 5 successful open source projects to identify best practices in funding configuration.
|
||||||
|
|
||||||
|
# Test Strategy:
|
||||||
|
Testing should verify the technical implementation of the FUNDING.yml file:
|
||||||
|
|
||||||
|
1. **FUNDING.yml validation**:
|
||||||
|
- Verify the file is correctly placed in the .github directory
|
||||||
|
- Validate YAML syntax using a linter
|
||||||
|
- Test that GitHub correctly displays funding options on the repository page
|
||||||
|
- Verify all links to external funding platforms are functional
|
||||||
|
|
||||||
|
2. **User experience testing**:
|
||||||
|
- Test the complete funding workflow from a potential supporter's perspective
|
||||||
|
- Verify the process is intuitive and barriers to contribution are minimized
|
||||||
|
- Check that the Sponsor button appears correctly on GitHub
|
||||||
|
- Ensure all funding platform links resolve to the correct destinations
|
||||||
|
- Gather feedback from 2-3 potential users on clarity and ease of use
|
||||||
|
|
||||||
|
# Subtasks:
|
||||||
|
## 1. Research and Create FUNDING.yml File [done]
|
||||||
|
### Dependencies: None
|
||||||
|
### Description: Research successful funding configurations and create the .github/FUNDING.yml file for GitHub Sponsors integration and other funding platforms.
|
||||||
|
### Details:
|
||||||
|
Implementation steps:
|
||||||
|
1. Create the .github directory at the project root if it doesn't exist
|
||||||
|
2. Research funding configurations from 5 successful open source projects (Vue.js, React, TypeScript, etc.)
|
||||||
|
3. Document the patterns and approaches used in these projects
|
||||||
|
4. Create the FUNDING.yml file with the following platforms:
|
||||||
|
- GitHub Sponsors (primary)
|
||||||
|
- Open Collective
|
||||||
|
- Patreon
|
||||||
|
- Ko-fi
|
||||||
|
- Liberapay
|
||||||
|
- Custom donation URL for the project website
|
||||||
|
5. Validate the YAML syntax using a linter
|
||||||
|
6. Test the file by pushing to a test branch and verifying the Sponsor button appears correctly on GitHub
|
||||||
|
|
||||||
|
Testing approach:
|
||||||
|
- Validate YAML syntax using yamllint or similar tool
|
||||||
|
- Test on GitHub by checking if the Sponsor button appears in the repository
|
||||||
|
- Verify each funding link resolves to the correct destination
|
||||||
|
|
||||||
|
## 4. Add Documentation Comments to FUNDING.yml [pending]
|
||||||
|
### Dependencies: 40.1
|
||||||
|
### Description: Add comprehensive comments within the FUNDING.yml file to provide context and guidance for each funding option.
|
||||||
|
### Details:
|
||||||
|
Implementation steps:
|
||||||
|
1. Add a header comment explaining the purpose of the file
|
||||||
|
2. For each funding platform entry, add comments that explain:
|
||||||
|
- What the platform is
|
||||||
|
- How funds are processed on this platform
|
||||||
|
- Any specific benefits of using this platform
|
||||||
|
- Brief instructions for potential sponsors
|
||||||
|
3. Include a comment about how sponsors will be acknowledged
|
||||||
|
4. Add information about fund allocation (maintenance, new features, infrastructure)
|
||||||
|
5. Ensure comments follow YAML comment syntax and don't break the file structure
|
||||||
|
|
||||||
|
Testing approach:
|
||||||
|
- Validate that the YAML file still passes linting with comments added
|
||||||
|
- Verify the file still functions correctly on GitHub
|
||||||
|
- Have at least one team member review the comments for clarity and completeness
|
||||||
|
|
||||||
|
## 5. Integrate Funding Information in Project README [pending]
|
||||||
|
### Dependencies: 40.1, 40.4
|
||||||
|
### Description: Add a section to the project README that highlights the funding options and directs users to the Sponsor button.
|
||||||
|
### Details:
|
||||||
|
Implementation steps:
|
||||||
|
1. Create a 'Support the Project' or 'Sponsorship' section in the README.md
|
||||||
|
2. Explain briefly why financial support matters for the project
|
||||||
|
3. Direct users to the GitHub Sponsor button
|
||||||
|
4. Mention the alternative funding platforms available
|
||||||
|
5. Include a brief note on how funds will be used
|
||||||
|
6. Add any relevant funding badges (e.g., Open Collective, GitHub Sponsors)
|
||||||
|
|
||||||
|
Testing approach:
|
||||||
|
- Review the README section for clarity and conciseness
|
||||||
|
- Verify all links work correctly
|
||||||
|
- Ensure the section is appropriately visible but doesn't overshadow project information
|
||||||
|
- Check that badges render correctly
|
||||||
|
|
||||||
89
tasks/task_041.txt
Normal file
89
tasks/task_041.txt
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
# Task ID: 41
|
||||||
|
# Title: Implement GitHub Actions CI Workflow for Task Master
|
||||||
|
# Status: pending
|
||||||
|
# Dependencies: None
|
||||||
|
# Priority: high
|
||||||
|
# Description: Create a streamlined CI workflow file (ci.yml) that efficiently tests the Task Master codebase using GitHub Actions.
|
||||||
|
# Details:
|
||||||
|
Create a GitHub Actions workflow file at `.github/workflows/ci.yml` with the following specifications:
|
||||||
|
|
||||||
|
1. Configure the workflow to trigger on:
|
||||||
|
- Push events to any branch
|
||||||
|
- Pull request events targeting any branch
|
||||||
|
|
||||||
|
2. Core workflow configuration:
|
||||||
|
- Use Ubuntu latest as the primary testing environment
|
||||||
|
- Use Node.js 20.x (LTS) for consistency with the project
|
||||||
|
- Focus on single environment for speed and simplicity
|
||||||
|
|
||||||
|
3. Configure workflow steps to:
|
||||||
|
- Checkout the repository using actions/checkout@v4
|
||||||
|
- Set up Node.js using actions/setup-node@v4 with npm caching
|
||||||
|
- Install dependencies with 'npm ci'
|
||||||
|
- Run tests with 'npm run test:coverage'
|
||||||
|
|
||||||
|
4. Implement efficient caching:
|
||||||
|
- Cache node_modules using actions/cache@v4
|
||||||
|
- Use package-lock.json hash for cache key
|
||||||
|
- Implement proper cache restoration keys
|
||||||
|
|
||||||
|
5. Ensure proper timeouts:
|
||||||
|
- 2 minutes for dependency installation
|
||||||
|
- Appropriate timeout for test execution
|
||||||
|
|
||||||
|
6. Artifact handling:
|
||||||
|
- Upload test results and coverage reports
|
||||||
|
- Use consistent naming for artifacts
|
||||||
|
- Retain artifacts for 30 days
|
||||||
|
|
||||||
|
# Test Strategy:
|
||||||
|
To verify correct implementation of the GitHub Actions CI workflow:
|
||||||
|
|
||||||
|
1. Manual verification:
|
||||||
|
- Check that the file is correctly placed at `.github/workflows/ci.yml`
|
||||||
|
- Verify the YAML syntax is valid
|
||||||
|
- Confirm all required configurations are present
|
||||||
|
|
||||||
|
2. Functional testing:
|
||||||
|
- Push a commit to verify the workflow triggers
|
||||||
|
- Create a PR to verify the workflow runs on pull requests
|
||||||
|
- Verify test coverage reports are generated and uploaded
|
||||||
|
- Confirm caching is working effectively
|
||||||
|
|
||||||
|
3. Performance testing:
|
||||||
|
- Verify cache hits reduce installation time
|
||||||
|
- Confirm workflow completes within expected timeframe
|
||||||
|
- Check artifact upload and download speeds
|
||||||
|
|
||||||
|
# Subtasks:
|
||||||
|
## 1. Create Basic GitHub Actions Workflow [pending]
|
||||||
|
### Dependencies: None
|
||||||
|
### Description: Set up the foundational GitHub Actions workflow file with proper triggers and Node.js setup
|
||||||
|
### Details:
|
||||||
|
1. Create `.github/workflows/ci.yml`
|
||||||
|
2. Configure workflow name and triggers
|
||||||
|
3. Set up Ubuntu runner and Node.js 20.x
|
||||||
|
4. Implement checkout and Node.js setup actions
|
||||||
|
5. Configure npm caching
|
||||||
|
6. Test basic workflow functionality
|
||||||
|
|
||||||
|
## 2. Implement Test and Coverage Steps [pending]
|
||||||
|
### Dependencies: 41.1
|
||||||
|
### Description: Add test execution and coverage reporting to the workflow
|
||||||
|
### Details:
|
||||||
|
1. Add dependency installation with proper timeout
|
||||||
|
2. Configure test execution with coverage
|
||||||
|
3. Set up test results and coverage artifacts
|
||||||
|
4. Verify artifact upload functionality
|
||||||
|
5. Test the complete workflow
|
||||||
|
|
||||||
|
## 3. Optimize Workflow Performance [pending]
|
||||||
|
### Dependencies: 41.1, 41.2
|
||||||
|
### Description: Implement caching and performance optimizations
|
||||||
|
### Details:
|
||||||
|
1. Set up node_modules caching
|
||||||
|
2. Configure cache key strategy
|
||||||
|
3. Implement proper timeout values
|
||||||
|
4. Test caching effectiveness
|
||||||
|
5. Document performance improvements
|
||||||
|
|
||||||
@@ -2208,6 +2208,94 @@
|
|||||||
"parentTaskId": 39
|
"parentTaskId": 39
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 40,
|
||||||
|
"title": "Implement Project Funding Documentation and Support Infrastructure",
|
||||||
|
"description": "Create FUNDING.yml for GitHub Sponsors integration that outlines all financial support options for the Task Master project.",
|
||||||
|
"status": "in-progress",
|
||||||
|
"dependencies": [],
|
||||||
|
"priority": "medium",
|
||||||
|
"details": "This task involves creating a FUNDING.yml file to enable and manage funding options for the Task Master project:\n\n**FUNDING.yml file**:\n - Create a .github/FUNDING.yml file following GitHub's specifications\n - Include configuration for multiple funding platforms:\n - GitHub Sponsors (primary if available)\n - Open Collective\n - Patreon\n - Ko-fi\n - Liberapay\n - Custom funding URLs (project website donation page)\n - Research and reference successful implementation patterns from Vue.js, React, and TypeScript projects\n - Ensure the FUNDING.yml contains sufficient information to guide users on how to support the project\n - Include comments within the YAML file to provide context for each funding option\n\nThe implementation should maintain consistent branding and messaging with the rest of the Task Master project. Research at least 5 successful open source projects to identify best practices in funding configuration.",
|
||||||
|
"testStrategy": "Testing should verify the technical implementation of the FUNDING.yml file:\n\n1. **FUNDING.yml validation**:\n - Verify the file is correctly placed in the .github directory\n - Validate YAML syntax using a linter\n - Test that GitHub correctly displays funding options on the repository page\n - Verify all links to external funding platforms are functional\n\n2. **User experience testing**:\n - Test the complete funding workflow from a potential supporter's perspective\n - Verify the process is intuitive and barriers to contribution are minimized\n - Check that the Sponsor button appears correctly on GitHub\n - Ensure all funding platform links resolve to the correct destinations\n - Gather feedback from 2-3 potential users on clarity and ease of use",
|
||||||
|
"subtasks": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"title": "Research and Create FUNDING.yml File",
|
||||||
|
"description": "Research successful funding configurations and create the .github/FUNDING.yml file for GitHub Sponsors integration and other funding platforms.",
|
||||||
|
"dependencies": [],
|
||||||
|
"details": "Implementation steps:\n1. Create the .github directory at the project root if it doesn't exist\n2. Research funding configurations from 5 successful open source projects (Vue.js, React, TypeScript, etc.)\n3. Document the patterns and approaches used in these projects\n4. Create the FUNDING.yml file with the following platforms:\n - GitHub Sponsors (primary)\n - Open Collective\n - Patreon\n - Ko-fi\n - Liberapay\n - Custom donation URL for the project website\n5. Validate the YAML syntax using a linter\n6. Test the file by pushing to a test branch and verifying the Sponsor button appears correctly on GitHub\n\nTesting approach:\n- Validate YAML syntax using yamllint or similar tool\n- Test on GitHub by checking if the Sponsor button appears in the repository\n- Verify each funding link resolves to the correct destination",
|
||||||
|
"status": "done",
|
||||||
|
"parentTaskId": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"title": "Add Documentation Comments to FUNDING.yml",
|
||||||
|
"description": "Add comprehensive comments within the FUNDING.yml file to provide context and guidance for each funding option.",
|
||||||
|
"dependencies": [
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"details": "Implementation steps:\n1. Add a header comment explaining the purpose of the file\n2. For each funding platform entry, add comments that explain:\n - What the platform is\n - How funds are processed on this platform\n - Any specific benefits of using this platform\n - Brief instructions for potential sponsors\n3. Include a comment about how sponsors will be acknowledged\n4. Add information about fund allocation (maintenance, new features, infrastructure)\n5. Ensure comments follow YAML comment syntax and don't break the file structure\n\nTesting approach:\n- Validate that the YAML file still passes linting with comments added\n- Verify the file still functions correctly on GitHub\n- Have at least one team member review the comments for clarity and completeness",
|
||||||
|
"status": "pending",
|
||||||
|
"parentTaskId": 40
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"title": "Integrate Funding Information in Project README",
|
||||||
|
"description": "Add a section to the project README that highlights the funding options and directs users to the Sponsor button.",
|
||||||
|
"dependencies": [
|
||||||
|
1,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"details": "Implementation steps:\n1. Create a 'Support the Project' or 'Sponsorship' section in the README.md\n2. Explain briefly why financial support matters for the project\n3. Direct users to the GitHub Sponsor button\n4. Mention the alternative funding platforms available\n5. Include a brief note on how funds will be used\n6. Add any relevant funding badges (e.g., Open Collective, GitHub Sponsors)\n\nTesting approach:\n- Review the README section for clarity and conciseness\n- Verify all links work correctly\n- Ensure the section is appropriately visible but doesn't overshadow project information\n- Check that badges render correctly",
|
||||||
|
"status": "pending",
|
||||||
|
"parentTaskId": 40
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 41,
|
||||||
|
"title": "Implement GitHub Actions CI Workflow for Cross-Platform Testing",
|
||||||
|
"description": "Create a CI workflow file (ci.yml) that tests the codebase across multiple Node.js versions and operating systems using GitHub Actions.",
|
||||||
|
"status": "pending",
|
||||||
|
"dependencies": [],
|
||||||
|
"priority": "high",
|
||||||
|
"details": "Create a GitHub Actions workflow file at `.github/workflows/ci.yml` with the following specifications:\n\n1. Configure the workflow to trigger on:\n - Push events to any branch\n - Pull request events targeting any branch\n\n2. Implement a matrix strategy that tests across:\n - Node.js versions: 18.x, 20.x, and 22.x\n - Operating systems: Ubuntu-latest and Windows-latest\n\n3. Include proper Git configuration steps:\n - Set Git user name to 'GitHub Actions'\n - Set Git email to 'github-actions@github.com'\n\n4. Configure workflow steps to:\n - Checkout the repository using actions/checkout@v3\n - Set up Node.js using actions/setup-node@v3 with the matrix version\n - Use npm for package management (not pnpm)\n - Install dependencies with 'npm ci'\n - Run linting with 'npm run lint' (if available)\n - Run tests with 'npm test'\n - Run build process with 'npm run build'\n\n5. Implement concurrency controls to:\n - Cancel in-progress workflows when new commits are pushed to the same PR\n - Use a concurrency group based on the GitHub ref and workflow name\n\n6. Add proper caching for npm dependencies to speed up workflow runs\n\n7. Ensure the workflow includes appropriate timeouts to prevent hung jobs",
|
||||||
|
"testStrategy": "To verify correct implementation of the GitHub Actions CI workflow:\n\n1. Manual verification:\n - Check that the file is correctly placed at `.github/workflows/ci.yml`\n - Verify the YAML syntax is valid using a YAML linter\n - Confirm all required configurations (triggers, matrix, steps) are present\n\n2. Functional testing:\n - Push a commit to a feature branch to confirm the workflow triggers\n - Create a PR to verify the workflow runs on pull requests\n - Verify the workflow successfully runs on both Ubuntu and Windows\n - Confirm tests run against all three Node.js versions (18, 20, 22)\n - Test concurrency by pushing multiple commits to the same PR rapidly\n\n3. Edge case testing:\n - Introduce a failing test and verify the workflow reports failure\n - Test with a large dependency tree to verify caching works correctly\n - Verify the workflow handles non-ASCII characters in file paths correctly (particularly on Windows)\n\n4. Check workflow logs to ensure:\n - Git configuration is applied correctly\n - Dependencies are installed with npm (not pnpm)\n - All matrix combinations run independently\n - Concurrency controls cancel redundant workflow runs",
|
||||||
|
"subtasks": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"title": "Create Basic GitHub Actions Workflow Structure",
|
||||||
|
"description": "Set up the foundational GitHub Actions workflow file with triggers, checkout, and Node.js setup using matrix strategy",
|
||||||
|
"dependencies": [],
|
||||||
|
"details": "1. Create `.github/workflows/` directory if it doesn't exist\n2. Create a new file `ci.yml` inside this directory\n3. Define the workflow name at the top of the file\n4. Configure triggers for push events to any branch and pull request events targeting any branch\n5. Set up the matrix strategy for Node.js versions (18.x, 20.x, 22.x) and operating systems (Ubuntu-latest, Windows-latest)\n6. Configure the job to checkout the repository using actions/checkout@v3\n7. Set up Node.js using actions/setup-node@v3 with the matrix version\n8. Add proper caching for npm dependencies\n9. Test the workflow by pushing the file to a test branch and verifying it triggers correctly\n10. Verify that the matrix builds are running on all specified Node versions and operating systems",
|
||||||
|
"status": "pending",
|
||||||
|
"parentTaskId": 41
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"title": "Implement Build and Test Steps with Git Configuration",
|
||||||
|
"description": "Add the core build and test steps to the workflow, including Git configuration, dependency installation, and execution of lint, test, and build commands",
|
||||||
|
"dependencies": [
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"details": "1. Add Git configuration steps to set user name to 'GitHub Actions' and email to 'github-actions@github.com'\n2. Add step to install dependencies with 'npm ci'\n3. Add conditional step to run linting with 'npm run lint' if available\n4. Add step to run tests with 'npm test'\n5. Add step to run build process with 'npm run build'\n6. Ensure each step has appropriate names for clear visibility in GitHub Actions UI\n7. Add appropriate error handling and continue-on-error settings where needed\n8. Test the workflow by pushing a change and verifying all build steps execute correctly\n9. Verify that the workflow correctly runs on both Ubuntu and Windows environments\n10. Ensure that all commands use the correct syntax for cross-platform compatibility",
|
||||||
|
"status": "pending",
|
||||||
|
"parentTaskId": 41
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"title": "Add Workflow Optimization Features",
|
||||||
|
"description": "Implement concurrency controls, timeouts, and other optimization features to improve workflow efficiency and reliability",
|
||||||
|
"dependencies": [
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
"details": "1. Implement concurrency controls to cancel in-progress workflows when new commits are pushed to the same PR\n2. Define a concurrency group based on the GitHub ref and workflow name\n3. Add appropriate timeouts to prevent hung jobs (typically 30-60 minutes depending on project complexity)\n4. Add status badges to the README.md file to show build status\n5. Optimize the workflow by adding appropriate 'if' conditions to skip unnecessary steps\n6. Add job summary outputs to provide clear information about the build results\n7. Test the concurrency feature by pushing multiple commits in quick succession to a PR\n8. Verify that old workflow runs are canceled when new commits are pushed\n9. Test timeout functionality by temporarily adding a long-running step\n10. Document the CI workflow in project documentation, explaining what it does and how to troubleshoot common issues",
|
||||||
|
"status": "pending",
|
||||||
|
"parentTaskId": 41
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user