Nort

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Overview

A set of bash scripts that know how to interact with local build tools, such as Maven and its configuration, and external resources such as GitHub. They provide extended operational capabilities for Nova Ordis projects: runtime wrappers, building released artifacts ready for distribution, upload releases in binary repositories, etc., local and remote installation, etc. A customized copy of these scripts is installed under the ./bin directory for each project.

In the future, the utilities will gain the capability of driving Go projects as well, offering a unified command line interface for Java and Go projects.

GitHub


https://github.com/NovaOrdis/novaordis-release-tools

Installation

Update novaordis-release-tools from GitHub and then:

.../novaordis-release-tools/install <project-home-dir>

What it does not do and it should

Usage

In-line help is available with:

operations

which is the original name of the script and it should be available in the ./bin subdirectory.

The latest output:

NOMBP2:events ovidiu$ operations
Nova Ordis Release Tools

Usage:

    <command> [global-options] <command-arguments> | operations [global-options] <command> <command-arguments>

Global Options:

    -v | --verbose - verbose execution.

Commands:

    install [-f|--force]

    release <snapshot|minor|major|patch|"version-string">

        Makes a release by incrementing the release information appropriately, running all tests, building the final
        artifact and installing the artifact in the appropriate repository. If a version string is used, the string
        is checked for consistency. The release process will fail if the version string is invalid or represents an
        older version than the current version.

     test - internal release tools testing shortcut. Advanced users only.

Installation:

    ./src/main/bash/operations install-release-tools <project-home-directory>

        The installation functionality can currently only be accessed from the original repository.
        'install-release-tools' installs the release tools into the 'bin' subdirectory of the specified project home
        directory. A target directory qualifies as "project home directory" if it has a Maven pom.xml in it. If an
        older version of the release tools is already installed, 'install-release-tools' will upgrade in place.

Per-Project Configuration:

    Create an operations.conf in the directory the release tools were installed into and configure local project
    properties.

User Manual

Releases

A release consists in a tag in the repository plus a series of binary artifacts that are automatically uploaded into a binary repository. If the project produces a a Java library, that binary repository is usually a Maven repository. If the project produces an executable, the binary repository is GitHub's "release" facility. Running the "release" command consists, in order, of the following steps:

  1. Increment the local version information (in the pom.xml file, for example).
  2. run tests
  3. produce the distributable binaries
  4. tag the repository
  5. upload the distributable binaries into the binary repository
  6. increment the local version to reflect the next snapshot (working version)

Development

novaordis-release-tools TODO