@golemio/cli
Version:
Collection of executables intended for use with Golemio services and modules
132 lines (95 loc) • 7.7 kB
Markdown
[](https://gitlab.com/operator-ict/golemio/code/golemio-cli/commits/master)
[](https://gitlab.com/operator-ict/golemio/code/golemio-cli/commits/master)
# Golemio CLI
> Golemio CLI is a collection of executables intended for use with Golemio services and modules
## Install the CLI
### Prerequisites
- Node.js version 14 or later (https://nodejs.org)
### Install locally (recommended)
```bash
$ cd my-project
# With Yarn
$ yarn add --dev @golemio/cli
# For Portman support, run yarn add --dev @apideck/portman@^1.16.1
# With npm
$ npm install --save-dev @golemio/cli
# For Portman support, run npm install --save-dev @apideck/portman@^1.16.1
# Test it out
$ yarn golemio
$ npm exec golemio
```
### Install globally
```bash
# With Yarn
$ yarn global add @golemio/cli
# With npm
$ npm install -g @golemio/cli
# Test it out
$ golemio
```
## Commands summary
| Command | Description |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| golemio | Default command (welcome) |
| golemio help | View available commands |
| golemio migrate-db help | View available migration commands and flags |
| golemio migrate-db create \<name\> | Create new migration scripts (--postgres, --path) |
| golemio migrate-db up | Execute up migrations (--postgres, --path) |
| golemio migrate-db down | Execute down migrations (--postgres, --path) |
| golemio migrate-db reset | Reset all executed migrations (--postgres, --path) |
| golemio import-db-data help | View available db data import commands and flags |
| golemio import-db-data | Import db data (--dangerous, --postgres) |
| golemio rabbitmq help | View available rabbitmq commands and flags |
| golemio rabbitmq send --help | View available rabbitmq send flags |
| golemio rabbitmq receive --help | View available rabbitmq receive flags |
| golemio release help | View available commands |
| golemio release check-modules-integrity | Check module group if new repo was added |
| golemio release check | Check repos that are ready to release (--scope, --skip or --only, --interactive) |
| golemio release merge | Merge repos marked as release candidate by `check` command (--scope, --skip or --only, --interactive) |
| golemio release check-mr-pipelines | Show pipelines of merged repos (--scope, --skip or --only, --interactive) |
| golemio release sync-branches | Synchronize branches after release (--scope, --skip or --only, --interactive) |
| golemio release create-tags | Create tags and releases of merged repos (--scope, --skip or --only, --interactive) |
| golemio release print-release-issue | Print issues and release candidate modules |
| golemio swagger help | View available swagger commands and flags |
| golemio swagger generate | Generate OAS file from multiple inputs |
| golemio swagger api-test | Run Portman integration tests |
| golemio asyncapi merge | Merge asyncapi documentation |
| golemio asyncapi upload | Build and upload the asyncapi documentation to the azure blob storage |
Read [release_management_CZ](./docs/release_management_CZ.md) for more info to `release` command. Read [migrations](./docs/migrations.md) for more info about database migrations.
## Environmental variables
| Variable | Example | Required |
| ----------------------- | --------------------------------------------- | ---------------------------------------------------- |
| POSTGRES_CONN | postgres://oict:oict-pass@localhost/oict-test | :white_check_mark: (mdb and idd postgres) |
| RABBIT_CONN | amqp://rabbit:pass@localhost | :white_check_mark: (rmq) |
| POSTGRES_MIGRATIONS_DIR | db/migrations/postgresql (default) | :negative_squared_cross_mark: |
| SQL_DUMP_FILES | db/example/\*.sql | :white_check_mark: (idd postgres) |
| GITLAB_API_TOKEN | token | :white_check_mark: (rls) |
| RELEASE_BRANCH_NAME | release | :negative_squared_cross_mark: (rls) default: release |
| TARGET_BRANCH_NAME | master | :negative_squared_cross_mark: (rls) default: master |
The value of the variable GITLAB_API_TOKEN should be created in GitLab User Settings [page Access Tokens](https://gitlab.com/-/profile/personal_access_tokens). Token scopes are `api`, `read_repository` and `write_repository`.
## Development
### Local environment
To set up your local development environment, install project dependencies and create .env file in the root of the project (see [.env.template](https://gitlab.com/operator-ict/golemio/code/golemio-cli/-/blob/development/.env.template) for reference)
```bash
$ npm install
$ cp .env.template .env
```
Now you can run the CLI in development mode, just type
```bash
$ ./bin/golemio.js
```
You don't need to compile the source code as the script automatically registers the [ts-node](https://www.npmjs.com/package/ts-node) loader in development mode
### Unit tests
Unit tests are located at test/unit. You can run them by typing
```bash
$ npm run test-unit
```
### Integration tests
Integration tests are located at test/integration. You can run them by typing
```bash
# Run local services, recommended
$ docker-compose up -d
$ npm run test-integration
```
## License
[MIT](https://gitlab.com/operator-ict/golemio/code/golemio-cli/-/blob/development/LICENSE)