diff --git a/.github/workflows/build-test-publish.yml b/.github/workflows/build-test-publish.yml index 3604d3a..17474fe 100644 --- a/.github/workflows/build-test-publish.yml +++ b/.github/workflows/build-test-publish.yml @@ -44,6 +44,8 @@ jobs: release-tag: ${{ steps.set-matrix.outputs.release-tag }} evernode-se-version: ${{ steps.set-matrix.outputs.evernode-se-version }} package-name: ${{ steps.set-matrix.outputs.package-name }} + major-tag: ${{ steps.set-matrix.outputs.major-tag }} + minor-tag: ${{ steps.set-matrix.outputs.minor-tag }} steps: - uses: actions/checkout@v2 - name: Get Evernode SE Releases and Set matrix diff --git a/DEVELOPER.md b/DEVELOPER.md new file mode 100644 index 0000000..c4d2d00 --- /dev/null +++ b/DEVELOPER.md @@ -0,0 +1,63 @@ +# Evernode SE + +The solution prepares special application packs (releases) for running Evernode OS Startup Edition without Docker for different Operational Systems. The main idea for the solution is creating standardized application packs. + +## How it works + +To make the process of building fast and easy, we use Github Actions and GitHub Workflow for building all necessary binary application packs in everscale-actions/evernode-se-binaries repository. Evernode SE application pack is a tar.gz archive that contains applications (Nginx, ArangoDB, Q Server, Evernode) and configuration files to quick start. The full list of application packs could be found here. + +### Building applications + +Almost all GitHub Jobs in [build-and-release.yml](https://github.com/everscale-actions/evernode-se-binaries/blob/main/.github/workflows/build-and-release.yml) Workflow file use [build matrix](https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix). This approach allows us to build each possible version of application pack for each Operating System, easy and clean delivery to the clients. Below is described general information about building each application in binary packs. + +> Each night a special workflow file checks a new verion of [Evernode OS Startup Edition](https://github.com/tonlabs/evernode-se). If detects a new verision, [node-release-detection.yml](https://github.com/everscale-actions/evernode-se-binaries/blob/main/.github/workflows/node-release-detection.yml) initiation a process of building and publishing a new release of application pack. + +| Matrix | Ever Node | Nginx | Arango DB | Q Server | +| --- | --- | --- | --- | --- | +| OS: [ ubuntu-18.04, macos-10.15, windows-2019 ] | x | x | x | x | +| Ever Node SE versions: [ 0.24.12, 0.24.13, 0.25.0 ] | x | - | - | - | + +Version of applications can be changed by settings ENV variables in [build-and-release.yml](https://github.com/everscale-actions/evernode-se-binaries/blob/main/.github/workflows/build-and-release.yml). + +```yml +ARANGODB_VERSION: 3.7.9 +NGINX_VERSION: 1.19.7 +``` + +#### Build Ever Node + +- Checkout evernode-se +- Cache cargo +- Build +- Pack result and publish artifact +- Tests +- Publish npm + +#### Build Nginx + +- Download necessary version using [NPM Package](https://github.com/everscale-actions/evernode-se-binaries/tree/main/nginx) +- Pack result and publish artifact + +#### Build Arango DB + +- Download necessary version using [config.arango.js](https://github.com/everscale-actions/evernode-se-binaries/blob/main/config.arangodb.js) +- Unpack archive and create right structure +- Pack result and publish artifact + +#### Build Q-Server + +- Checkout [tonlabs/ton-q-server](https://github.com/tonlabs/ton-q-server) +- NPM install +- Pack result and publish artifact + +#### Build Config Files + +- Checkout [tonlabs/evernode-se](https://github.com/tonlabs/evernode-se) +- Copy necessary files from evernode-se repo +- Pack result and publish artifact + +#### Publish Release + +- Download all workflow run artifacts +- Merge tar files +- Upload Release Artifact diff --git a/README.md b/README.md index 6c5cd99..f4115b0 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,26 @@ -# Evernode SE package +# Evernode SE -The solution prepares special application packs (releases) for running [Evernode OS Startup Edition without Docker](https://github.com/everscale-actions/evernode-se) for different Operational Systems. The main idea for the solution is creating standardized application packs. +## How to use -The major version of the [Evernode OS Startup Edition without Docker](https://github.com/everscale-actions/evernode-se) can use only the major version of binaries release. This approach allows us to ensure compatibility between [Evernode OS Startup Edition without Docker](https://github.com/everscale-actions/evernode-se) and binary files. +### With installation: -So if [Evernode OS Startup Edition](https://github.com/tonlabs/evernode-se) releases a new version that contains Postgres(for example), we will publish the next major version of binary files. And then we will publish a new major version of the [Evernode OS Startup Edition without Docker](https://github.com/everscale-actions/evernode-se) tool, which will be compatible only with the same major version of binary application packs. - -## How it works - -To make the process of building fast and easy, we use Github Actions and GitHub Workflow for building all necessary binary application packs in everscale-actions/evernode-se-binaries repository. Evernode SE application pack is a tar.gz archive that contains applications (Nginx, ArangoDB, Q Server, Evernode) and configuration files to quick start. The full list of application packs could be found here. - -### Building applications - -Almost all GitHub Jobs in [build-and-release.yml](https://github.com/everscale-actions/evernode-se-binaries/blob/main/.github/workflows/build-and-release.yml) Workflow file use [build matrix](https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix). This approach allows us to build each possible version of application pack for each Operating System, easy and clean delivery to the clients. Below is described general information about building each application in binary packs. - -> Each night a special workflow file checks a new verion of [Evernode OS Startup Edition](https://github.com/tonlabs/evernode-se). If detects a new verision, [node-release-detection.yml](https://github.com/everscale-actions/evernode-se-binaries/blob/main/.github/workflows/node-release-detection.yml) initiation a process of building and publishing a new release of application pack. - -| Matrix | Ever Node | Nginx | Arango DB | Q Server | -| --- | --- | --- | --- | --- | -| OS: [ ubuntu-18.04, macos-10.15, windows-2019 ] | x | x | x | x | -| Ever Node SE versions: [ 0.24.12, 0.24.13, 0.25.0 ] | x | - | - | - | - -Version of each application can be changed by settings ENV variables in [build-and-release.yml](https://github.com/everscale-actions/evernode-se-binaries/blob/main/.github/workflows/build-and-release.yml). - -```yml -ARANGODB_VERSION: 3.7.9 -TON_Q_SERVER_VERSION: 0.34.1 -NGINX_VERSION: 1.19.7 +```sh +npm i -g @everscale-actions/evernode-se +evernode-se help ``` -#### Build Ever Node - -- Checkout evernode-se -- Cache cargo -- Build -- Pack result and publish artifact - -#### Build Nginx +### Without installation: -- Download necessary version using [NPM Package](https://github.com/everscale-actions/evernode-se-binaries/tree/main/nginx) -- Pack result and publish artifact - -#### Build Arango DB - -- Download necessary version using [config.arango.js](https://github.com/everscale-actions/evernode-se-binaries/blob/main/config.arangodb.js) -- Unpack archive and create right structure -- Pack result and publish artifact - -#### Build Q-Server - -- Checkout [tonlabs/ton-q-server](https://github.com/tonlabs/ton-q-server) -- NPM install -- Pack result and publish artifact - -#### Build Config Files - -- Checkout [tonlabs/evernode-se](https://github.com/tonlabs/evernode-se) -- Copy necessary files from evernode-se repo -- Pack result and publish artifact - -#### Publish Release +```sh +npx @everscale-actions/evernode-se help +``` -- Download all workflow run artifacts -- Merge tar files -- Upload Release Artifact +## Command List +``` +start | stop | restart Start, stop or restart necessary services. +config Show and configure listening ports and other options. Follow 'config options' in this help section to get details. +reset Reset config parameters and remove internal applications without data files +remove Removing whole applications and data files. +status Display status. +version Display version of applications. +``` \ No newline at end of file diff --git a/bin/evernode-se.js b/bin/evernode-se.js index 947958b..b4d67b5 100755 --- a/bin/evernode-se.js +++ b/bin/evernode-se.js @@ -5,7 +5,7 @@ import getUsage from 'command-line-usage'; import PortsAlreadyInUseError from '../lib/errors/ports-already-in-use.js'; import evernode from '../lib/evernode-se.js'; -const appName = global.packageJson.bin[0]; +const appName = Object.keys(global.packageJson.bin)[0]; /* first - parse the main command */ const mainDefinitions = [ @@ -25,7 +25,7 @@ async function main() { const sections = [ { header: 'Evernode SE CLI', - content: 'Easy install, configure and manage TON OS Startup Edition without Docker.', + content: 'Easy install, configure and manage Evernode Startup Edition without Docker.', }, { header: 'Synopsis', diff --git a/package.json b/package.json index 2889ee2..18dac85 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@everscale-actions/evernode-se", - "version": "0.30.1", + "version": "0.30.1-fix1", "author": "Everscale Actions", "license": "Apache-2.0", "type": "module",