LIGHT

  • News
  • Docs
  • Community
  • Reddit
  • GitHub

Release Maven

This is the task to release all frameworks and modules all together for the networknt organization on the GitHub. It first checkout repositories into a workspace and switch to the release branch defined in the release-maven.yml file. If the workspace exists, then it will switch to the release branch and run git pull origin (release-branch) to ensure the codebase is the same as remote.

Then the release process is started with the following step for each repository.

  • check out release branch or pull the latest from the release branch.
  • generate CHANGELOG.md from local release branch and github.com API.
  • check in the CHANGELOG.md to the release branch
  • run “mvn clean install deploy -DperformRelease” to release to Maven Central.
  • read CHANGELOG.md for the current release into a StringBuffer.
  • call GitHub API to create a new release note and tag

Note that before release, all projects should be built successfully in the release branch by develop-build. After the release, you might need to change the GitHub release a little bit to add the upgrade guide.

For live configuration examples, please visit light-config-test.

Here is an example of the release-maven.yml config file for networknt projects in the master branch.

# Workspace that is used for this operation. Most of time, this is done on local.
workspace: releasemaven_1_6_x
# release version that is used to generate changelog. This need to be changed every time
version: 1.6.0
# github organization as the token is bound to the org in changelog generator. This
# means that you can only release multiple repositories within the same org each time.
organization: networknt
# previous tag used to calculate how many commits in between in the git log
prev_tag: 1.5.32
# last number of pull requests retrieved from the GitHub. 100 minimum.
last: 100
# You can skip checkout if you are sure that the code in workspace are the latest and
# you just want to repeat the release process due to some environmental issue before.
skip_checkout: false
# skip change log generation
skip_change_log: false
# skip check in the generated changelog
skip_checkin: false
# You can skip the last release step so that you can double check the merged result.
skip_release: false
# skip upload release note to the github
skip_release_note: false
# clone and switch to develop branch / checkout and pull from develop branch
checkout:
  - branch: master
    repository:
    - [email protected]:networknt/light-4j.git
    - [email protected]:networknt/json-overlay.git
    - [email protected]:networknt/openapi-parser.git
    - [email protected]:networknt/light-rest-4j.git
    - [email protected]:networknt/light-graphql-4j.git
    - [email protected]:networknt/light-hybrid-4j.git
    - [email protected]:networknt/light-codegen.git
    - [email protected]:networknt/light-eventuate-4j.git
    - [email protected]:networknt/light-tram-kafka.git
    - [email protected]:networknt/light-tram-4j.git
    - [email protected]:networknt/light-saga-4j.git
    - [email protected]:networknt/light-session-4j.git
    - [email protected]:networknt/light-spa-4j.git
    - [email protected]:networknt/light-proxy.git
    - [email protected]:networknt/light-router.git
    - [email protected]:networknt/light-oauth2.git
    - [email protected]:networknt/light-tokenization.git
    - [email protected]:networknt/light-consumer-4j.git
    - [email protected]:networknt/light-example-4j.git
    - [email protected]:networknt/light-docker.git
    - [email protected]:networknt/light-config-server.git
    - [email protected]:networknt/light-portal.git
    - [email protected]:networknt/light-workflow-4j.git
    - [email protected]:networknt/light-spring-boot.git

# generate changelog.md from github issues and check in
# release to maven central
# merge the changelog.md to develop branch
# publish the release to github repository
release:
  - light-4j
  - json-overlay
  - openapi-parser
  - light-rest-4j
  - light-graphql-4j
  - light-hybrid-4j
  - light-codegen
  - light-eventuate-4j
  - light-tram-kafka
  - light-tram-4j
  - light-saga-4j
  - light-session-4j
  - light-spa-4j
  - light-consumer-4j
  - light-router
  - light-proxy
  - light-spring-boot
  • About Light
    • Overview
    • Testimonials
    • What is Light
    • Features
    • Principles
    • Benefits
    • Roadmap
    • Community
    • Articles
    • Videos
    • License
    • Why Light Platform
  • Getting Started
    • Get Started Overview
    • Environment
    • Light Codegen Tool
    • Light Rest 4j
    • Light Tram 4j
    • Light Graphql 4j
    • Light Hybrid 4j
    • Light Eventuate 4j
    • Light Oauth2
    • Light Portal Service
    • Light Proxy Server
    • Light Router Server
    • Light Config Server
    • Light Saga 4j
    • Light Session 4j
    • Webserver
    • Websocket
    • Spring Boot Servlet
  • Architecture
    • Architecture Overview
    • API Category
    • API Gateway
    • Architecture Patterns
    • CQRS
    • Eco System
    • Event Sourcing
    • Fail Fast vs Fail Slow
    • Integration Patterns
    • JavaEE declining
    • Key Distribution
    • Microservices Architecture
    • Microservices Monitoring
    • Microservices Security
    • Microservices Traceability
    • Modular Monolith
    • Platform Ecosystem
    • Plugin Architecture
    • Scalability and Performance
    • Serverless
    • Service Collaboration
    • Service Mesh
    • SOA
    • Spring is bloated
    • Stages of API Adoption
    • Transaction Management
    • Microservices Cross-cutting Concerns Options
    • Service Mesh Plus
    • Service Discovery
  • Design
    • Design Overview
    • Design First vs Code First
    • Desgin Pattern
    • Service Evolution
    • Consumer Contract and Consumer Driven Contract
    • Handling Partial Failure
    • Idempotency
    • Server Life Cycle
    • Environment Segregation
    • Database
    • Decomposition Patterns
    • Http2
    • Test Driven
    • Multi-Tenancy
    • Why check token expiration
    • WebServices to Microservices
  • Cross-Cutting Concerns
    • Concerns Overview
  • API Styles
    • Light-4j for absolute performance
    • Style Overview
    • Distributed session on IMDG
    • Hybrid Serverless Modularized Monolithic
    • Kafka - Event Sourcing and CQRS
    • REST - Representational state transfer
    • Web Server with Light
    • Websocket with Light
    • Spring Boot Integration
    • Single Page Application
    • GraphQL - A query language for your API
    • Light IBM MQ
    • Light AWS Lambda
    • Chaos Monkey
  • Infrastructure Services
    • Service Overview
    • Light Proxy
    • Light Mesh
    • Light Router
    • Light Portal
    • Messaging Infrastructure
    • Centralized Logging
    • COVID-19
    • Light OAuth2
    • Metrics and Alerts
    • Config Server
    • Tokenization
    • Light Controller
  • Tool Chain
    • Tool Chain Overview
  • Utility Library
  • Service Consumer
    • Service Consumer
  • Development
    • Development Overview
  • Deployment
    • Deployment Overview
    • Frontend Backend
    • Linux Service
    • Windows Service
    • Install Eventuate on Windows
    • Secure API
    • Client vs light-router
    • Memory Limit
    • Deploy to Kubernetes
  • Benchmark
    • Benchmark Overview
  • Tutorial
    • Tutorial Overview
  • Troubleshooting
    • Troubleshoot
  • FAQ
    • FAQ Overview
  • Milestones
  • Contribute
    • Contribute to Light
    • Development
    • Documentation
    • Example
    • Tutorial
“Release Maven” was last updated: April 2, 2019: fixes #62 add Chinese language for the document site (5c820aa)
Improve this page
  • News
  • Docs
  • Community
  • Reddit
  • GitHub
  • About Light
  • Getting Started
  • Architecture
  • Design
  • Cross-Cutting Concerns
  • API Styles
  • Infrastructure Services
  • Tool Chain
  • Utility Library
  • Service Consumer
  • Development
  • Deployment
  • Benchmark
  • Tutorial
  • Troubleshooting
  • FAQ
  • Milestones
  • Contribute