Releases for CaSS are fully automated via GitHub Actions to ensure consistency, security, and traceability. The release workflow is split into two parts:
docker compose -f docker-compose-test.yml up -d elasticsearch-cassdocker compose -f docker-compose-test.yml builddocker scout cves -o scan-node.txt cass-cass;docker scout cves -o scan-alpine.txt cass-cass-alpine;docker scout cves -o scan-distroless.txt cass-cass-distroless;docker scout cves -o scan-standalone.txt cass-cass-standalone
To begin a release, you manually trigger the Draft Release workflow.
- Navigate to the Actions tab in the CaSS GitHub repository.
- Select the Draft Release PR workflow from the left sidebar.
- Click the Run workflow dropdown on the right.
- Select the target branch for the release (e.g.,
1.5,1.6). - Choose the type of version bump (
major,minor,patch, orprerelease). - Click Run workflow.
The GitHub Action will check out the code, run npm upgrade --save, and bump the package.json version. It will handle creating a new branch and automatically open a Pull Request against the major/minor target branch (e.g., 1.6).
As part of this PR, a secondary job will run Docker Scout on the built images. It will assess the cass, cass-alpine, cass-distroless, and cass-standalone images for vulnerabilities and post a comment with the CVE report on the PR.
Once the Pull Request is reviewed (to ensure the dependency updates and CVE scans are acceptable), the release can be finalized.
- Merge the PR into the target branch.
- Merging the PR triggers the Publish Release workflow automatically.
The publish workflow will:
- Build the Docker images using
docker buildx. - Generate SBOMs (Software Bill of Materials) and SLSA Provenance attestations.
- Push the images and their attestations to Docker Hub.
- Create a Git Tag and a GitHub Release containing the changelog.