1.128.0 • Published 2 years ago

stoic-portal v1.128.0

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Stoic Portal

Installs stoic sources locally, resolves dependencies, links modules and compiles Ryū.

Usage

npx -p sutoiku/stoic-portal stoic-portal --base <folder>

Portal will install each module (core.stoic.ui.stoic...) in subfolders of the specified base directory. If a subfolder already exists with the same name, Portal will check if it contains a git subdirectory. In that case, it will git pull to update it. Otherwise, it will leave it as it is. If no subfolder with the name is found, it will git clone to get the latest code base.

Parameters

base

Defines where everything has to be installed. The specified directory must exist.

  • Default value: ~/stoic
  • CLI parameter : --base <folder>

logs

Defines where installation logs will be written.

  • Default value: <base>/logs
  • CLI parameter : --logs <folder>

Feature

Searches for the corresponding branch in all repos, otherwise uses master.

  • Default value: <empty>
  • CLI parameter : --feature <name>

Prevent Scripts installation

If true, no stoic installation scripts will be run.

  • Default value: true
  • CLI parameter : --noscripts

Prevent Dependencies installation

If true, dependencies will not be installed.

  • Default value: true
  • CLI parameter : --nodeps

install-modules

Even with --noscripts enabled, can be used to force them to be executed on one of the modules.

  • Default value: <empty>
  • CLI parameter : --install-modules

Dry-run

If true, the nothing gets executed. The configuration is displayed, then the program exits.

  • Default value: false
  • CLI parameter : --dry-run

heads

---heads=<file> specifies a headsFile to use instead of getting HEADS from git repositories.

Configuration file

Must be in JSON format, and contain the following root attribues :

repositoryUrlTemplate

Convention to transform a repository name into a URL (ex : "git@github.com:company/#name#").

repositories

Array of repositories to install.

Exemple: ["all", "my", "repositories"]

links

Portal automatically detects links to be done from package.json files, but it can be necessary to force some, for instance when the same repository contains sub-directories with package.json (Marcus I'm looking at you).

Key-Value object, where each key is a repository and each value is an array of paths to be linked.

Exemple :

"links": {
  "project": [
    "other.project/node_modules/project"
  ],
  "project/subdirectory": [
    "yet.another.project/node_modules/project-sub"
  ],

Assembler

Assembler is used by the CI system to retrieve pre-compiled and tested modules from AWS S3 to avoid a full rebuild of the platform each time something is commited.

This produces JSON reports :

  • feature-heads.json contains the list of sha1 used , for each module.
  • heads.json contains the list of sha1 used, for the specified feature (e.g. excluding master failbacks of a feature was specified)

Usage

npx -p sutoiku/stoic-portal stoic-assemble --base <base directory>  <options>

Parameters

Base

Defines where everything has to be installed. The specified directory must exist.

  • Default value: ~/stoic`
  • CLI parameter : --base <folder>

    Feature

    Searches for the corresponding branch in all repos, otherwise uses master.
  • Default value: <empty>
  • CLI parameter : --feature <name>

Production

If set to the string true, npm installation will be performed with the --production flag.

Strict

If present, Assembler will exit with an error exit code (1) if an archive is missing.

Exclude

Any module in this list will be excluded from the S3 downloads.

heads

---heads=<file> specifies a headsFile to use instead of getting HEADS from git repositories.

Dry-run

If true, the nothing gets executed. The configuration is displayed, then the program exits.

  • Default value: false
  • CLI parameter : --dry-run

Github-status

Set github commit status, without overriding an upper status : does not set pending when the status is already success, etc.

Parameters

  • context : Github status context name (see Github API Documentation)
  • status : can be either pending, success or failure
  • message : Status description or additional information
  • file : heads report, as produced by the Assembler portal binary.

Env variables

This requires JIRA_TOKEN and GITHUB_TOKEN env variables to be set.

Parameters

  • --heads : Heads file to use for github tagging
  • --tag : Version tag(s) to apply to github repositories. Multiple values can be set, separated by commas.
  • --hotfix : if present, GitHub won't be updated.
  • --dry-run