This directory contains the CI/CD configuration for Eclipse Fennec Bndtools Libraries.
- Triggers: All branches except
mainandsnapshot, plus all pull requests - Purpose: Validation builds for development and feature branches
- Actions:
./gradlew build --info
- Triggers: Pushes to
mainbranch only - Purpose: Production releases to Maven Central with staging
- Process:
- Sets
DO_RELEASE=true - Uses GPG signing for artifacts
- Calls
stage.shscript for staging repository management - Deploys to Central Portal staging repositories
- Sets
- Triggers: Pushes to
snapshotbranch only - Purpose: Snapshot releases to Maven Central snapshots
- Process:
- Sets
DO_RELEASE=false - Uses GPG signing for artifacts
- Direct upload to
central.sonatype.com/repository/maven-snapshots/ - No staging required
- Sets
Manages Sonatype Central Portal staging repositories for production releases.
Usage: ./stage.sh <GROUP_ID>
Process:
- Searches for existing staging repositories by group ID
- Finds the first available repository key
- Initiates manual upload process for the staging repository
- Sets
REPO_KEYenvironment variable for subsequent steps
Required Environment Variables:
CS_USERNAME- Central Sonatype usernameCS_PASSWORD- Central Sonatype password
Error Handling: All failures return exit 1 to fail the build.
The following GitHub secrets must be configured:
CENTRAL_SONATYPE_TOKEN_USERNAME- Central Portal API usernameCENTRAL_SONATYPE_TOKEN_PASSWORD- Central Portal API passwordGPG_PASSPHRASE- GPG key passphrase for artifact signingGPG_KEY_ID- GPG key ID for signingGPG_PRIVATE_KEY- GPG private key for signing
- Development: Work on feature branches →
build.ymlvalidates changes - Snapshots: Merge to
snapshotbranch →snapshot.ymlautomatic snapshot release - Production: Merge to
mainbranch →release.ymlproduction release with staging