This guide describes how to create a new release of EU Parliament Monitor with automated documentation and attestations.
-
Navigate to GitHub Actions
- Go to https://github.com/Hack23/euparliamentmonitor/actions
- Select "Release" workflow
-
Trigger Release
- Click "Run workflow"
- Enter version (e.g.,
v1.0.0) - Select if pre-release
- Click "Run workflow"
-
Workflow Steps (Automatic) The workflow will automatically:
- ✅ Validate code (linting, HTML validation)
- ✅ Run all tests (unit, integration, E2E)
- ✅ Generate test coverage reports
- ✅ Generate API documentation (JSDoc)
- ✅ Create documentation index
- ✅ Commit documentation to main branch
- ✅ Create release artifacts with docs
- ✅ Generate SBOM (Software Bill of Materials)
- ✅ Create build provenance attestations
- ✅ Create GitHub release with all artifacts
-
Review Release
- Check the release notes at https://github.com/Hack23/euparliamentmonitor/releases
- Verify documentation is updated in docs/
- Verify attestations are present
-
Create and Push Tag
git tag v1.0.0 git push origin v1.0.0
-
Workflow Triggers Automatically
- Same automated steps as above
- Release is created automatically
Each release automatically generates and commits:
- Complete JSDoc-generated API reference
- Searchable interface
- Source code cross-references
- Module documentation
- Line coverage reports
- Branch coverage analysis
- Function coverage metrics
- Interactive HTML reports
- Unit test results summary
- Integration test results
- Links to detailed reports
- Playwright test execution results
- Browser-specific results
- Screenshots and videos on failure
- Accessibility scan results
- Beautiful landing page
- Links to all documentation
- Quick navigation
- Responsive design
Each release includes:
- Format: SPDX JSON
- Lists all dependencies
- Includes version information
- File:
euparliamentmonitor-{version}.spdx.json
- SLSA Level 3 attestation
- Build environment details
- Build parameters
- File:
euparliamentmonitor-{version}.zip.intoto.jsonl
- SBOM integrity verification
- Cryptographically signed
- File:
euparliamentmonitor-{version}.spdx.json.intoto.jsonl
Using GitHub CLI:
# Install GitHub CLI if needed
# brew install gh # macOS
# or download from https://cli.github.com/
# Verify the release artifact
gh attestation verify euparliamentmonitor-v1.0.0.zip --owner Hack23
# Expected output:
# ✓ Verification succeeded!-
Online Documentation
- Visit https://hack23.github.io/euparliamentmonitor/docs/
- Browse API docs, coverage, and test reports
-
Local Documentation
- Extract release artifact
- Open
docs/index.htmlin browser
Before creating a release:
- All tests passing on main branch
- No known security vulnerabilities
- CHANGELOG.md updated (if exists)
- Version number follows semantic versioning
- Documentation is up-to-date
After release:
- Verify release artifacts are present
- Check documentation is updated
- Verify attestations with
gh attestation verify - Test release artifact downloads
- Announce release (if applicable)
The release workflow automatically:
-
Commits to main branch
- Documentation updates
- Version bumps (if workflow_dispatch)
-
Creates GitHub Release
- Release notes from Release Drafter
- Artifacts attached
- Tagged with version
-
Artifacts Available
- Main application zip
- SBOM (SPDX format)
- Build provenance attestation
- SBOM attestation
For automatic deployment to S3/CloudFront:
- See
.github/workflows/deploy-s3.yml - Triggers on successful release
- Deploys to production environment
- Check test logs in GitHub Actions
- Run tests locally:
npm test - Fix issues and retry release
- Verify JSDoc configuration:
jsdoc.json - Run locally:
npm run docs:generate - Check for errors in workflow logs
- Ensure OIDC token permissions are set
- Check
attestations: writepermission - Verify GitHub Actions version
- Check if tag already exists
- Delete tag if needed:
git tag -d v1.0.0 - Push deletion:
git push origin :refs/tags/v1.0.0
Follow Semantic Versioning (SemVer):
- Major (v2.0.0) - Breaking changes
- Minor (v1.1.0) - New features, backward compatible
- Patch (v1.0.1) - Bug fixes, backward compatible
Examples:
- Initial release:
v1.0.0 - Bug fix:
v1.0.1 - New feature:
v1.1.0 - Breaking change:
v2.0.0 - Pre-release:
v1.0.0-alpha.1
- README.md - Project overview
- CONTRIBUTING.md - Contribution guidelines
- SECURITY.md - Security policy
- docs/README.md - Documentation guide
For issues or questions:
- Open an issue: https://github.com/Hack23/euparliamentmonitor/issues
- Email: conduct@hack23.com
Last Updated: 2026-02-18
Version: 1.0