docs-v2/.github/workflows/prepare-release.yml

102 lines
3.1 KiB
YAML

name: Prepare Documentation Release
on:
workflow_dispatch:
inputs:
product:
description: 'Product to release'
required: true
type: choice
options:
- core
- enterprise
- cloud-serverless
- cloud-dedicated
version:
description: 'Version number (e.g., 3.2.1)'
required: true
release_type:
description: 'Release type'
required: true
type: choice
options:
- major
- minor
- patch
- hotfix
jobs:
prepare-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Create release branch
run: |
git checkout -b docs-release-v${{ inputs.version }}
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Generate release notes
run: |
# Note: This workflow assumes release notes are generated manually or from tagged releases
# The script needs repository access which would require
# checking out the repositories first
echo "Warning: Release notes generation requires access to InfluxDB source repositories"
echo "For now, creating a placeholder file that should be replaced with actual release notes"
# Create output directory
mkdir -p helper-scripts/output/release-notes
# Create placeholder release notes file
cat > helper-scripts/output/release-notes/release-notes-v${{ inputs.version }}.md << EOF
## v${{ inputs.version }} {date="$(date +'%Y-%m-%d')"}
### Features
- TODO: Add features for ${{ inputs.product }} v${{ inputs.version }}
### Bug Fixes
- TODO: Add bug fixes for ${{ inputs.product }} v${{ inputs.version }}
<!--
Note: This is a placeholder file generated by the workflow.
To generate actual release notes with commit history, run:
For Core/Enterprise:
npx docs release-notes <previous_version> v${{ inputs.version }} --products influxdb3_core,influxdb3_enterprise
For other products:
npx docs release-notes <previous_version> v${{ inputs.version }} --products <product_key>
-->
EOF
- name: Update product versions
run: |
# Script to update data/products.yml
./helper-scripts/common/update-product-version.sh \
--product ${{ inputs.product }} \
--version ${{ inputs.version }}
- name: Create release checklist issue
uses: actions/github-script@v7
with:
script: |
const checklist = require('./.github/scripts/release-checklist.js');
await checklist.createIssue({
github,
context,
product: '${{ inputs.product }}',
version: '${{ inputs.version }}',
releaseType: '${{ inputs.release_type }}'
})