rw_release_validation_complete.yaml
Pre-release validation workflow that tests all release components without publishing artifacts.
Descriptionโ
This workflow provides comprehensive validation of release artifacts before actual deployment. It tests Python package builds, Docker image builds, documentation generation, and supply chain security without publishing anything to production registries.
Purposeโ
- Pre-Release Testing: Validate all release components before production deployment
- Pull Request Validation: Automatically test releases on PRs to master branch
- Configuration Testing: Verify release configuration and intent parsing
- Security Validation: Test SBOM generation, vulnerability scanning, and signing
- Risk Mitigation: Catch issues early without affecting production artifacts
Inputsโ
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
level | string | No | auto | Release level to test (auto, patch, minor, major) |
python | string | No | auto | Python package validation (auto, force, skip) |
docker | string | No | auto | Docker image validation (auto, force, skip) |
docs | string | No | auto | Documentation validation (auto, force, skip) |
Outputsโ
| Output | Description |
|---|---|
validation_passed | Whether all validation checks passed |
intent_parsed | Release intent parsing result |
python_validated | Python package validation result |
docker_validated | Docker validation result |
docs_validated | Documentation validation result |
security_validated | Security validation result |
Workflow Architectureโ
Validation Stepsโ
1. Configuration Parsing & Validationโ
config:
name: Parse Configuration
uses: ./.github/workflows/rw_parse_project_config.yaml
Validates:
- Enhanced
intent.yamlstructure and syntax - Config output generation for all sections
- Auto-detection logic for project and package names
- Docker registry URLs and health check configurations
- Documentation path accessibility
2. Dockerfile Detectionโ
check-dockerfile:
name: Check Dockerfile Exists
runs-on: ubuntu-latest
outputs:
has_dockerfile: ${{ steps.check.outputs.has_dockerfile }}
Purpose:
- Validates Dockerfile presence before Docker validation steps
- Prevents validation failures for Python-only projects
- Provides clear skip messages when no Dockerfile found
- Enables conditional execution of Docker-related jobs
3. Release Intent Validationโ
intent-parse:
uses: ./.github/workflows/rw_parse_release_intent.yaml
needs: config
with:
level: ${{ inputs.level }}
python: ${{ inputs.python }}
docker: ${{ inputs.docker }}
docs: ${{ inputs.docs }}
Validates:
- Enhanced JSON schema validation
- Release intent against config-provided defaults
- Artifact configuration with enhanced format support
- Version bump level settings
- Release notes format