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 # For Core/Enterprise products, the script needs repository access which would require # checking out the influxdb and influxdb_pro 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 }} 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 }}' })