/performer

Cloud Service for Continuous Integration/Continuous Deployment Builder

Primary LanguageTypeScriptOtherNOASSERTION



License: DEL

performer

Cloud Service for Continuous Integration/Continuous Delivery Builder


performer is a service or self-hosted system task-runner/builder based on GitOps.

Specialized support for the runtimes

  • NodeJS

performer uses plurid to explore information as a 3D structure.

Contents

Install

run

npm install @plurid/performer

or

yarn add @plurid/performer

create a server.js file

import Performer from '@plurid/performer';


const performer = new Performer();

performer.start();

and run it

node server.js

performer starts a server listening on port 56065 serving the performer UI on /, or which can receive GraphQL API requests on /perform.

Usage

In order to use performer, once the installation setup is finished, launch the performer UI and

Phase 0.⠀ — add provider(s);

Phase 1a. — link repositories;

Phase 1b. — add imagene(s);

Phase 2.⠀ — setup webhook(s);

Phase 3.⠀ — generate project(s);

Phase 4.⠀ — store secret(s);

Phase 5.⠀ — generate trigger(s);

Phase 6.⠀ — generate deployer(s);

——— performer setup finished ———

Phase 7.⠀ — code in the local repositories (linked at Phase 1a);

Phase 8.⠀ — push to branch listened by trigger (Phase 5);

Phase 9.⠀performer will automatically handle the builds and deploys based on the specified repositories, webhooks, triggers, and deployers;

Phase 10. — once performer finishes the build and deploy, run git fetch origin and git pull to update the local repositories.

Trigger example

stages:
- name: 'Name of the Stage'
  directory: '/path/of/the/directory/to/work/in'
  imagene: 'image-name-to-run-in-the-container'
  command: 'run a command'
  environment:
  - 'LIST=of-environment-variables'
  secretsEnvironment:
  - 'SECRET'

- name: 'Deploy'
  imagene: 'deployer'
  id: 'deployer-id'

timeout: 720s

secrets:
- 'SECRET'

nodejs:
  cacheModulesActive: true # cache node_modules and .lock files for faster container creation
  cacheModulesTime: 5h # interger + 'h' for hours or 'forever'

Deployer example

- name: 'Generate Latest Deployment'
  directory: '/path/of/the/directory/to/work/in'
  imagene: 'ubuntu'
  command: [
    '/bin/bash',
    '-c',
    'sed "s/COMMIT_SHA/${SHORT_SHA}/g" Deployment.template.yaml > Deployment.latest.yaml'
  ]

- name: 'Deploy Latest Imagene'
  directory: '/path/of/the/directory/to/work/in'
  imagene: 'kubectl'
  command: [
    'apply',
    '-f',
    'Deployment.latest.yaml'
  ]

Building

docker build --file ./configurations/production.dockerfile \
    --tag performer \
    --build-arg PORT= \
    --build-arg PERFORMER_QUIET= \
    --build-arg PERFORMER_LOG_LEVEL= \
    --build-arg DOCKER_AUTH_USERNAME= \
    --build-arg DOCKER_AUTH_PASSWORD= \
    --build-arg DOCKER_AUTH_SERVER_ADDRESS= \
    --build-arg PERFORMER_DATABASE_TYPE= \
    --build-arg PERFORMER_STORAGE_TYPE= \
    --build-arg PERFORMER_STORAGE_BUCKET= \
    --build-arg PERFORMER_STORAGE_ROOT_PATH= \
    --build-arg PERFORMER_BASE_PATH= \
    --build-arg PERFORMER_AWS_API_VERSION= \
    --build-arg PERFORMER_AWS_REGION= \
    --build-arg PERFORMER_AWS_ACCESS_KEY_ID= \
    --build-arg PERFORMER_AWS_SECRET_ACCESS_KEY= \
    --build-arg GOOGLE_APPLICATION_CREDENTIALS= \
    --build-arg PERFORMER_CUSTOM_LOGIC= \
    --build-arg PERFORMER_PRIVATE_USAGE= \
    --build-arg PERFORMER_PRIVATE_OWNER_IDENTONYM= \
    --build-arg PERFORMER_PRIVATE_OWNER_KEY= \
    --build-arg PERFORMER_PRIVATE_TOKEN= \
    --build-arg PERFORMER_IN_CONTAINER_USAGE= \
    --build-arg PERFORMER_IN_CONTAINER_HOST_BIND= \
    .

performer uses by default delog for logging purposes.

In order to configure performer with delog pass the following required build arguments

    --build-arg USE_DELOG=true \
    --build-arg DELOG_ENDPOINT= \
    --build-arg DELOG_TOKEN= \

or customize the delog through any other build arguments

    --build-arg DELOG_GROUND_LEVEL= \
    --build-arg DELOG_FORMAT= \
    --build-arg DELOG_PROJECT= \
    --build-arg DELOG_SPACE= \

Packages

Version

@plurid/performer • the server application

Version

@plurid/performer-cli • the command-line interface

Version

@plurid/performer-requests • the API requests