CircleCI orb for QQQ framework projects.
For: Teams using CircleCI to build, test, and publish QQQ applications Status: Stable (v0.5.0)
QQQ projects share common CI/CD patterns: build with Maven, run tests, publish to Maven Central or npm. Setting this up from scratch means duplicating workflow configuration across every repository.
This orb provides pre-built jobs for the complete QQQ development lifecycle. Add a few lines of YAML and your project has automated testing, version management, and publishing.
- Maven and npm support - Builds Java and Node.js projects
- Docker-native execution - Machine executor with Docker pre-installed for Testcontainers/LocalStack
- GitFlow integration - Automated versioning based on branch type
- Publishing automation - Maven Central and npm registry publishing
- Test coverage - JaCoCo integration with coverage reporting
- Version calculation - Semantic versioning with SNAPSHOT, RC, and release support
- Java 21 default - Temurin JDK with configurable version (17, 21)
Prerequisites: CircleCI account, repository connected to CircleCI
# .circleci/config.yml
version: 2.1
orbs:
qqq-orb: kingsrook/qqq-orb@0.5
workflows:
build_and_test:
jobs:
- qqq-orb/mvn_test_only
publish_snapshot:
when:
equal: [develop, << pipeline.git.branch >>]
jobs:
- qqq-orb/mvn_publish:
context: qqq-maven-registry-credentials
branch_type: snapshot| Job | Purpose |
|---|---|
mvn_test_only |
Build and test Maven projects |
mvn_publish |
Build, test, and publish Maven artifacts |
mvn_frontend_test_only |
Build and test Maven projects with npm frontend |
mvn_frontend_publish |
Build, test, and publish Maven projects with npm frontend |
node_test_only |
Build and test Node.js projects |
node_publish |
Build, test, and publish Node.js packages |
| Branch | Version Format |
|---|---|
develop |
1.5.0-SNAPSHOT |
release/1.5 |
1.5.0-RC.1 |
main |
1.5.0 (requires tag) |
hotfix/1.5.1 |
1.5.1 |
feature/* |
1.5.0-feature-abc1234-SNAPSHOT |
Maven jobs run on Ubuntu machine executors with Temurin JDK. Default is Java 21. To use Java 17:
jobs:
- qqq-orb/mvn_test_only:
java_version: "17"Maven jobs use machine executors with Docker pre-installed. Tests using Testcontainers, LocalStack, or other Docker-dependent frameworks work without additional configuration.
| Variable | Purpose |
|---|---|
MAVEN_USERNAME |
Sonatype username |
MAVEN_PASSWORD |
Sonatype password |
GPG_PRIVATE_KEY_B64 |
Base64-encoded GPG key |
GPG_KEYNAME |
GPG key ID |
GPG_PASSPHRASE |
GPG passphrase |
GITHUB_TOKEN |
GitHub API token |
Maturity: Stable, used across all QQQ repositories Breaking changes: See CHANGELOG.md
Roadmap:
- GitHub Actions support
- Parallel test execution
- Container image publishing
git clone git@github.com:QRun-IO/qqq-orb.git
cd qqq-orb
make test-allSee QQQ Contribution Guidelines.
AGPL-3.0 - QRun-IO