Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
ch1seL committed Apr 17, 2022
1 parent ec3a7d7 commit 20a26e9
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 62 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/build-test-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
63 changes: 63 additions & 0 deletions DEVELOPER.md
Original file line number Diff line number Diff line change
@@ -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
78 changes: 19 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
@@ -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.
```
4 changes: 2 additions & 2 deletions bin/evernode-se.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [
Expand All @@ -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',
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down

0 comments on commit 20a26e9

Please sign in to comment.