|
|
||
|---|---|---|
| .. | ||
| lib | ||
| README.md | ||
| generate-release-notes.sh | ||
| update-product-version.sh | ||
| validate-tags.js | ||
README.md
Common Helper Scripts
This directory contains scripts that are shared across all InfluxDB documentation products.
Scripts
generate-release-notes.sh
Generates release notes by analyzing git commits between two versions across multiple repositories.
Usage:
./generate-release-notes.sh [options] <from_version> <to_version> <primary_repo> [additional_repos...]
Options:
--no-fetch- Skip fetching latest commits from remote--pull- Pull latest changes (use with caution)
Example:
# Generate release notes for v3.2.0
./generate-release-notes.sh v3.1.0 v3.2.0 ~/repos/influxdb ~/repos/influxdb_iox
# Skip fetch for faster local testing
./generate-release-notes.sh --no-fetch v3.1.0 v3.2.0 ~/repos/influxdb
Output:
- Creates
release-notes-<version>.mdin current directory - Includes sections for Features, Bug Fixes, Breaking Changes, Performance, and API changes
update-product-version.sh
Updates product version information in documentation configuration files.
Usage:
./update-product-version.sh --product <product> --version <version>
Supported Products:
core- InfluxDB 3 Coreenterprise- InfluxDB 3 Enterpriseclustered- InfluxDB 3 Clusteredcloud-dedicated- InfluxDB 3 Cloud Dedicatedcloud-serverless- InfluxDB Cloud Serverless
Example:
# Update Core to version 3.2.1
./update-product-version.sh --product core --version 3.2.1
# Update Clustered to version 2024.1
./update-product-version.sh --product clustered --version 2024.1
What it updates:
data/products.yml- Main product version configuration- Docker Compose example files
- Installation instructions
- Download links
Library Functions
lib/docker-utils.sh
Shared Docker utility functions used by other scripts.
Available Functions:
check_docker_running()- Verify Docker daemon is runningcontainer_exists()- Check if a container existscontainer_running()- Check if a container is runningpull_image()- Pull Docker image with retry logicload_auth_token()- Load authentication tokens from secret files
Usage in scripts:
source "$(dirname "$0")/../common/lib/docker-utils.sh"
if container_running "influxdb3-core"; then
echo "Container is running"
fi
Integration with GitHub Actions
These scripts are designed to work in both local development and CI/CD environments:
Local Development:
- Assumes Docker Desktop or Docker Engine installed
- Uses local file paths for repositories
- Can work with running containers
GitHub Actions:
- Automatically detects CI environment
- Uses workspace paths
- Handles authentication via secrets
Best Practices
- Error Handling: All scripts use
set -eto exit on errors - Logging: Color-coded output for better readability
- Validation: Input validation before processing
- Idempotency: Scripts can be run multiple times safely
- Documentation: Comprehensive help text in each script
Adding New Common Scripts
When adding scripts to this directory:
- Ensure they are truly product-agnostic
- Follow existing naming conventions
- Add comprehensive documentation
- Include error handling and validation
- Update this README
- Test with all supported products