Compare commits
4 Commits
07fe650605
...
501548ce3d
| Author | SHA1 | Date |
|---|---|---|
|
|
501548ce3d | |
|
|
f99e192e74 | |
|
|
eb853aa3f6 | |
|
|
e4e1e7d6dc |
|
|
@ -176,7 +176,7 @@ I see {{epic_count}} epics with {{story_count}} total stories.
|
||||||
|
|
||||||
<check if="user_accepts_starter">
|
<check if="user_accepts_starter">
|
||||||
<action>Get current starter command and options:
|
<action>Get current starter command and options:
|
||||||
<WebSearch>{{starter_name}} CLI command options flags latest 2024</WebSearch>
|
<WebSearch>{{starter_name}} CLI command options flags latest 2025</WebSearch>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
<action>Document the initialization command:
|
<action>Document the initialization command:
|
||||||
|
|
@ -327,7 +327,7 @@ Let's work through the remaining {{remaining_count}} decisions."
|
||||||
|
|
||||||
<check if="decision_involves_specific_technology">
|
<check if="decision_involves_specific_technology">
|
||||||
<action>Verify current stable version:
|
<action>Verify current stable version:
|
||||||
<WebSearch>{{technology}} latest stable version 2024</WebSearch>
|
<WebSearch>{{technology}} latest stable version 2025</WebSearch>
|
||||||
<WebSearch>{{technology}} current LTS version</WebSearch>
|
<WebSearch>{{technology}} current LTS version</WebSearch>
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ test('should validate PDF report', async () => {
|
||||||
const { content } = await readPDF({ filePath: downloadPath });
|
const { content } = await readPDF({ filePath: downloadPath });
|
||||||
|
|
||||||
// content.text is extracted text from all pages
|
// content.text is extracted text from all pages
|
||||||
expect(content.text).toContain('Financial Report Q4 2024');
|
expect(content.text).toContain('Financial Report Q4 2025');
|
||||||
expect(content.text).toContain('Total Revenue:');
|
expect(content.text).toContain('Total Revenue:');
|
||||||
|
|
||||||
// Validate page count
|
// Validate page count
|
||||||
|
|
|
||||||
|
|
@ -121,9 +121,9 @@ If UX specification was loaded, consider UX requirements when selecting starter:
|
||||||
Use WebSearch to find current, maintained starter templates:
|
Use WebSearch to find current, maintained starter templates:
|
||||||
|
|
||||||
```
|
```
|
||||||
WebSearch: {{primary_technology}} starter template CLI create command latest 2024
|
WebSearch: {{primary_technology}} starter template CLI create command latest 2025
|
||||||
WebSearch: {{primary_technology}} boilerplate generator latest options 2024
|
WebSearch: {{primary_technology}} boilerplate generator latest options 2025
|
||||||
WebSearch: {{primary_technology}} production-ready starter best practices 2024
|
WebSearch: {{primary_technology}} production-ready starter best practices 2025
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Investigate Top Starter Options
|
### 4. Investigate Top Starter Options
|
||||||
|
|
@ -134,7 +134,7 @@ For each promising starter found, investigate details:
|
||||||
WebSearch: {{starter_name}} default setup technologies included latest
|
WebSearch: {{starter_name}} default setup technologies included latest
|
||||||
WebSearch: {{starter_name}} project structure file organization
|
WebSearch: {{starter_name}} project structure file organization
|
||||||
WebSearch: {{starter_name}} production deployment capabilities
|
WebSearch: {{starter_name}} production deployment capabilities
|
||||||
WebSearch: {{starter_name}} recent updates maintenance status 2024
|
WebSearch: {{starter_name}} recent updates maintenance status 2025
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5. Analyze What Each Starter Provides
|
### 5. Analyze What Each Starter Provides
|
||||||
|
|
@ -200,7 +200,7 @@ This is a great starting point that follows best practices and saves us from mak
|
||||||
If user shows interest in a starter, get the exact current commands:
|
If user shows interest in a starter, get the exact current commands:
|
||||||
|
|
||||||
```
|
```
|
||||||
WebSearch: {{starter_name}} CLI command options flags latest 2024
|
WebSearch: {{starter_name}} CLI command options flags latest 2025
|
||||||
WebSearch: {{starter_name}} create new project command examples
|
WebSearch: {{starter_name}} create new project command examples
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,9 +163,9 @@ What feels right to you?"
|
||||||
If decision involves specific technology:
|
If decision involves specific technology:
|
||||||
|
|
||||||
```
|
```
|
||||||
WebSearch: {{technology}} latest stable version 2024
|
WebSearch: {{technology}} latest stable version 2025
|
||||||
WebSearch: {{technology}} current LTS version
|
WebSearch: {{technology}} current LTS version
|
||||||
WebSearch: {{technology}} production readiness 2024
|
WebSearch: {{technology}} production readiness 2025
|
||||||
```
|
```
|
||||||
|
|
||||||
**Get User Input:**
|
**Get User Input:**
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,21 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Determine Node version
|
||||||
|
id: node-version
|
||||||
|
run: |
|
||||||
|
if [ -f .nvmrc ]; then
|
||||||
|
echo "value=$(cat .nvmrc)" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Using Node from .nvmrc"
|
||||||
|
else
|
||||||
|
echo "value=24" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Using default Node 24 (current LTS)"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: ".nvmrc"
|
node-version: ${{ steps.node-version.outputs.value }}
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
|
@ -54,10 +65,21 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Determine Node version
|
||||||
|
id: node-version
|
||||||
|
run: |
|
||||||
|
if [ -f .nvmrc ]; then
|
||||||
|
echo "value=$(cat .nvmrc)" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Using Node from .nvmrc"
|
||||||
|
else
|
||||||
|
echo "value=22" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Using default Node 22 (current LTS)"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: ".nvmrc"
|
node-version: ${{ steps.node-version.outputs.value }}
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
|
|
||||||
- name: Cache Playwright browsers
|
- name: Cache Playwright browsers
|
||||||
|
|
@ -99,10 +121,21 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Determine Node version
|
||||||
|
id: node-version
|
||||||
|
run: |
|
||||||
|
if [ -f .nvmrc ]; then
|
||||||
|
echo "value=$(cat .nvmrc)" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Using Node from .nvmrc"
|
||||||
|
else
|
||||||
|
echo "value=22" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "Using default Node 22 (current LTS)"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: ".nvmrc"
|
node-version: ${{ steps.node-version.outputs.value }}
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
|
|
||||||
- name: Cache Playwright browsers
|
- name: Cache Playwright browsers
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,8 @@ variables:
|
||||||
npm_config_cache: "$CI_PROJECT_DIR/.npm"
|
npm_config_cache: "$CI_PROJECT_DIR/.npm"
|
||||||
# Playwright browser cache
|
# Playwright browser cache
|
||||||
PLAYWRIGHT_BROWSERS_PATH: "$CI_PROJECT_DIR/.cache/ms-playwright"
|
PLAYWRIGHT_BROWSERS_PATH: "$CI_PROJECT_DIR/.cache/ms-playwright"
|
||||||
|
# Default Node version when .nvmrc is missing
|
||||||
|
DEFAULT_NODE_VERSION: "24"
|
||||||
|
|
||||||
# Caching configuration
|
# Caching configuration
|
||||||
cache:
|
cache:
|
||||||
|
|
@ -29,19 +31,32 @@ cache:
|
||||||
# Lint stage - Code quality checks
|
# Lint stage - Code quality checks
|
||||||
lint:
|
lint:
|
||||||
stage: lint
|
stage: lint
|
||||||
image: node:20
|
image: node:$DEFAULT_NODE_VERSION
|
||||||
script:
|
before_script:
|
||||||
|
- |
|
||||||
|
NODE_VERSION=$(cat .nvmrc 2>/dev/null || echo "$DEFAULT_NODE_VERSION")
|
||||||
|
echo "Using Node $NODE_VERSION"
|
||||||
|
npm install -g n
|
||||||
|
n "$NODE_VERSION"
|
||||||
|
node -v
|
||||||
- npm ci
|
- npm ci
|
||||||
|
script:
|
||||||
- npm run lint
|
- npm run lint
|
||||||
timeout: 5 minutes
|
timeout: 5 minutes
|
||||||
|
|
||||||
# Test stage - Parallel execution with sharding
|
# Test stage - Parallel execution with sharding
|
||||||
.test-template: &test-template
|
.test-template: &test-template
|
||||||
stage: test
|
stage: test
|
||||||
image: node:20
|
image: node:$DEFAULT_NODE_VERSION
|
||||||
needs:
|
needs:
|
||||||
- lint
|
- lint
|
||||||
before_script:
|
before_script:
|
||||||
|
- |
|
||||||
|
NODE_VERSION=$(cat .nvmrc 2>/dev/null || echo "$DEFAULT_NODE_VERSION")
|
||||||
|
echo "Using Node $NODE_VERSION"
|
||||||
|
npm install -g n
|
||||||
|
n "$NODE_VERSION"
|
||||||
|
node -v
|
||||||
- npm ci
|
- npm ci
|
||||||
- npx playwright install --with-deps chromium
|
- npx playwright install --with-deps chromium
|
||||||
artifacts:
|
artifacts:
|
||||||
|
|
@ -75,7 +90,7 @@ test:shard-4:
|
||||||
# Burn-in stage - Flaky test detection
|
# Burn-in stage - Flaky test detection
|
||||||
burn-in:
|
burn-in:
|
||||||
stage: burn-in
|
stage: burn-in
|
||||||
image: node:20
|
image: node:$DEFAULT_NODE_VERSION
|
||||||
needs:
|
needs:
|
||||||
- test:shard-1
|
- test:shard-1
|
||||||
- test:shard-2
|
- test:shard-2
|
||||||
|
|
@ -86,6 +101,12 @@ burn-in:
|
||||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||||
before_script:
|
before_script:
|
||||||
|
- |
|
||||||
|
NODE_VERSION=$(cat .nvmrc 2>/dev/null || echo "$DEFAULT_NODE_VERSION")
|
||||||
|
echo "Using Node $NODE_VERSION"
|
||||||
|
npm install -g n
|
||||||
|
n "$NODE_VERSION"
|
||||||
|
node -v
|
||||||
- npm ci
|
- npm ci
|
||||||
- npx playwright install --with-deps chromium
|
- npx playwright install --with-deps chromium
|
||||||
script:
|
script:
|
||||||
|
|
|
||||||
|
|
@ -61,8 +61,8 @@ Scaffolds a production-ready CI/CD quality pipeline with test execution, burn-in
|
||||||
- Ask user if unable to auto-detect
|
- Ask user if unable to auto-detect
|
||||||
|
|
||||||
5. **Read Environment Configuration**
|
5. **Read Environment Configuration**
|
||||||
- Check for `.nvmrc` to determine Node version
|
- Use `.nvmrc` for Node version if present
|
||||||
- Default to Node 20 LTS if not found
|
- If missing, default to a current LTS (Node 24) or newer instead of a fixed old version
|
||||||
- Read `package.json` to identify dependencies (affects caching strategy)
|
- Read `package.json` to identify dependencies (affects caching strategy)
|
||||||
|
|
||||||
**Halt Condition:** If preflight checks fail, stop immediately and report which requirement failed.
|
**Halt Condition:** If preflight checks fail, stop immediately and report which requirement failed.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue