There are some pipelines to make sure everything works fine, here is an idea about them:
On Pull Request, and Push to development branch: It will do a clean install of node dependencies, cache/restore them to make the process faster, and build the source code using lerna run build --no-private
.
On Release: It will do a clean install of node dependencies, cache/restore them to make the process faster, and build the source code using lerna run build --no-private
then publish the latest version to npm. Also it build a docker image for grid client from the released version.
On Pull Request, and Push to development branch: It will check if the code formatted well using Eslint and Prettier.
Runs daily for the last code and installs dependencies, runs tests and checks if tests passes or not.
Runs daily on all networks for the relevant release and it will check if the latest version runs without errors.
On Pull Request, and Push to development branch that has changes in the dashboard package: It will do a clean install of node dependencies, cache/restore them to make the process faster, and build the source code using yarn workspace @threefold/dashboard build
.
On Release published: It will build and push a new docker image based on project release tag.
The current VERSION (Which is passed by the Operations team) and GQL_URL environment variables will be propagated into the builds build-env.sh, The values of those arguments could be as follows:
TFCHAIN_NETWORK = "dev | qa | test | main | custom";
VERSION = "release tag";
Runs daily for the last code and it will check if the code in Explorer passed the test cases using Cypress.
Runs daily for the last code and it will check if the code in Portal passed the test cases using Selenium.
On Pull Request, and Push to development branch that has changes in the weblets package: It will do a clean install of node dependencies, cache/restore them to make the process faster, and build the source code using yarn build:app
.
On Release published: It will build and push a new docker image based on project release tag.
We are using VERSION, and NETWORK arguments in this workflow that will be propagated into the builds config, The values of those arguments could be as follows:
NETWORK = "dev" | "qa" | "test" | "main" (default: dev)
VERSION = "release tag or the first 7 chars of commit hash"
On Push to development branch: It will do a clean install of node dependencies, cache/restore them, build the source code and deploy to staging server by Copying the artifacts using ssh to play.dev.grid.tf
.
Runs daily for the last code and it will check if the code passed the test cases using Cypress.
On Pull Request, and Push to development branch that has changes in the playground package: It will do a clean install of node dependencies, cache/restore them to make the process faster, and build the source code using yarn build
.
On Release published: It will build and push a new docker image based on project release tag.
We are using VERSION, and NETWORK arguments in this workflow that will be propagated into the builds config, The values of those arguments could be as follows:
NETWORK = "dev" | "qa" | "test" | "main" (default: dev)
VERSION = "release tag or the first 7 chars of commit hash"
On Push to development branch: It will do a clean install of node dependencies, cache/restore them, build the source code and deploy to staging server by Copying the artifacts using ssh to play.dev.grid.tf
.
On Pull Request, and Push to development branch that has changes in the stats package: It will do a clean install of node dependencies, cache/restore them to make the process faster, and build the source code using yarn workspace @threefold/stats build
.
On Release published: It will build and push a new docker image based on project release tag.
On Pull Request, and Push to development branch: It will do a clean install of node dependencies, cache/restore them to make the process faster, and build the source code using lerna run build --no-private
.