{"id":18698431,"url":"https://github.com/plurid/performer","last_synced_at":"2025-11-08T17:30:34.215Z","repository":{"id":57137342,"uuid":"282493270","full_name":"plurid/performer","owner":"plurid","description":"Cloud Service for Continuous Integration/Continuous Deployment Builder","archived":false,"fork":false,"pushed_at":"2023-05-07T14:08:30.000Z","size":9392,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T04:42:04.309Z","etag":null,"topics":["build-pipelines","cloud","continuous-delivery","continuous-integration","plurid"],"latest_commit_sha":null,"homepage":"https://plurid.com/performer","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plurid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-25T17:33:41.000Z","updated_at":"2022-09-07T16:38:46.000Z","dependencies_parsed_at":"2024-10-25T01:52:14.282Z","dependency_job_id":"9c0b3380-c9f8-4ab4-8bca-694f020cf8d5","html_url":"https://github.com/plurid/performer","commit_stats":{"total_commits":654,"total_committers":1,"mean_commits":654.0,"dds":0.0,"last_synced_commit":"97e2a424f276cf845a16a50f9fb2edb5bfdbfc62"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plurid%2Fperformer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plurid%2Fperformer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plurid%2Fperformer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plurid%2Fperformer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plurid","download_url":"https://codeload.github.com/plurid/performer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239558934,"owners_count":19658934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-pipelines","cloud","continuous-delivery","continuous-integration","plurid"],"created_at":"2024-11-07T11:28:18.447Z","updated_at":"2025-11-08T17:30:34.152Z","avatar_url":"https://github.com/plurid.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca target=\"_blank\" href=\"https://performer.plurid.cloud\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/plurid/performer/master/about/identity/performer-logo.png\" height=\"250px\"\u003e\n    \u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca target=\"_blank\" href=\"https://github.com/plurid/performer/blob/master/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/license-DEL-blue.svg?colorB=1380C3\u0026style=for-the-badge\" alt=\"License: DEL\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\n\n\u003ch1 align=\"center\"\u003e\n    performer\n\u003c/h1\u003e\n\n\n\u003ch3 align=\"center\"\u003e\n    Cloud Service for Continuous Integration/Continuous Delivery Builder\n\u003c/h3\u003e\n\n\n\n\u003cbr /\u003e\n\n\n\n`performer` is a [service](https://performer.plurid.cloud) or self-hosted system task-runner/builder based on GitOps.\n\nSpecialized support for the runtimes\n\n+ `NodeJS`\n\n`performer` uses [plurid](https://github.com/plurid/plurid) to explore information as a 3D structure.\n\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/plurid/performer/master/about/screenshots/ss-1.png\" height=\"500px\"\u003e\n\u003c/p\u003e\n\n\n\n### Contents\n\n+ [Install](#install)\n+ [Usage](#usage)\n+ [Building](#building)\n+ [Packages](#packages)\n+ [Codeophon](#codeophon)\n\n\n\n## Install\n\nrun\n\n``` bash\nnpm install @plurid/performer\n```\n\nor\n\n``` bash\nyarn add @plurid/performer\n```\n\ncreate a `server.js` file\n\n``` typescript\nimport Performer from '@plurid/performer';\n\n\nconst performer = new Performer();\n\nperformer.start();\n```\n\nand run it\n\n``` bash\nnode server.js\n```\n\nperformer starts a server listening on port `56065` serving the performer UI on `/`, or which can receive GraphQL API requests on `/perform`.\n\n\n\n## Usage\n\nIn order to use performer, once the installation setup is finished, launch the performer UI and\n\n`Phase 0.⠀` — add `provider(s)`;\n\n`Phase 1a.` — link `repositories`;\n\n`Phase 1b.` — add `imagene(s)`;\n\n`Phase 2.⠀` — setup `webhook(s)`;\n\n`Phase 3.⠀` — generate `project(s)`;\n\n`Phase 4.⠀` — store `secret(s)`;\n\n`Phase 5.⠀` — generate `trigger(s)`;\n\n`Phase 6.⠀` — generate `deployer(s)`;\n\n——— `performer` setup finished ———\n\n`Phase 7.⠀` — code in the local repositories (linked at `Phase 1a`);\n\n`Phase 8.⠀` — push to branch listened by trigger (`Phase 5`);\n\n`Phase 9.⠀` — `performer` will automatically handle the builds and deploys based on the specified repositories, webhooks, triggers, and deployers;\n\n`Phase 10.` — once `performer` finishes the build and deploy, run `git fetch origin` and `git pull` to update the local repositories.\n\n\n### Trigger example\n\n``` yaml\nstages:\n- name: 'Name of the Stage'\n  directory: '/path/of/the/directory/to/work/in'\n  imagene: 'image-name-to-run-in-the-container'\n  command: 'run a command'\n  environment:\n  - 'LIST=of-environment-variables'\n  secretsEnvironment:\n  - 'SECRET'\n\n- name: 'Deploy'\n  imagene: 'deployer'\n  id: 'deployer-id'\n\ntimeout: 720s\n\nsecrets:\n- 'SECRET'\n\nnodejs:\n  cacheModulesActive: true # cache node_modules and .lock files for faster container creation\n  cacheModulesTime: 5h # interger + 'h' for hours or 'forever'\n```\n\n\n### Deployer example\n\n``` yaml\n- name: 'Generate Latest Deployment'\n  directory: '/path/of/the/directory/to/work/in'\n  imagene: 'ubuntu'\n  command: [\n    '/bin/bash',\n    '-c',\n    'sed \"s/COMMIT_SHA/${SHORT_SHA}/g\" Deployment.template.yaml \u003e Deployment.latest.yaml'\n  ]\n\n- name: 'Deploy Latest Imagene'\n  directory: '/path/of/the/directory/to/work/in'\n  imagene: 'kubectl'\n  command: [\n    'apply',\n    '-f',\n    'Deployment.latest.yaml'\n  ]\n```\n\n\n\n## Building\n\n``` bash\ndocker build --file ./configurations/production.dockerfile \\\n    --tag performer \\\n    --build-arg PORT= \\\n    --build-arg PERFORMER_QUIET= \\\n    --build-arg PERFORMER_LOG_LEVEL= \\\n    --build-arg DOCKER_AUTH_USERNAME= \\\n    --build-arg DOCKER_AUTH_PASSWORD= \\\n    --build-arg DOCKER_AUTH_SERVER_ADDRESS= \\\n    --build-arg PERFORMER_DATABASE_TYPE= \\\n    --build-arg PERFORMER_STORAGE_TYPE= \\\n    --build-arg PERFORMER_STORAGE_BUCKET= \\\n    --build-arg PERFORMER_STORAGE_ROOT_PATH= \\\n    --build-arg PERFORMER_BASE_PATH= \\\n    --build-arg PERFORMER_AWS_API_VERSION= \\\n    --build-arg PERFORMER_AWS_REGION= \\\n    --build-arg PERFORMER_AWS_ACCESS_KEY_ID= \\\n    --build-arg PERFORMER_AWS_SECRET_ACCESS_KEY= \\\n    --build-arg GOOGLE_APPLICATION_CREDENTIALS= \\\n    --build-arg PERFORMER_CUSTOM_LOGIC= \\\n    --build-arg PERFORMER_PRIVATE_USAGE= \\\n    --build-arg PERFORMER_PRIVATE_OWNER_IDENTONYM= \\\n    --build-arg PERFORMER_PRIVATE_OWNER_KEY= \\\n    --build-arg PERFORMER_PRIVATE_TOKEN= \\\n    --build-arg PERFORMER_IN_CONTAINER_USAGE= \\\n    --build-arg PERFORMER_IN_CONTAINER_HOST_BIND= \\\n    .\n```\n\n`performer` uses by default [`delog`](https://github.com/plurid/delog) for logging purposes.\n\nIn order to configure `performer` with `delog` pass the following required build arguments\n\n```\n    --build-arg USE_DELOG=true \\\n    --build-arg DELOG_ENDPOINT= \\\n    --build-arg DELOG_TOKEN= \\\n```\n\nor customize the `delog` through any other build arguments\n\n```\n    --build-arg DELOG_GROUND_LEVEL= \\\n    --build-arg DELOG_FORMAT= \\\n    --build-arg DELOG_PROJECT= \\\n    --build-arg DELOG_SPACE= \\\n```\n\n\n\n## Packages\n\n\u003ca target=\"_blank\" href=\"https://www.npmjs.com/package/@plurid/performer\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@plurid/performer.svg?logo=npm\u0026colorB=1380C3\u0026style=for-the-badge\" alt=\"Version\"\u003e\n\u003c/a\u003e\n\n[@plurid/performer][performer-server] • the server application\n\n[performer-server]: https://github.com/plurid/performer/tree/master/packages/performer-server\n\n\n\u003ca target=\"_blank\" href=\"https://www.npmjs.com/package/@plurid/performer-cli\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@plurid/performer-cli.svg?logo=npm\u0026colorB=1380C3\u0026style=for-the-badge\" alt=\"Version\"\u003e\n\u003c/a\u003e\n\n[@plurid/performer-cli][performer-cli] • the command-line interface\n\n[performer-cli]: https://github.com/plurid/performer/tree/master/packages/performer-cli\n\n\n\u003ca target=\"_blank\" href=\"https://www.npmjs.com/package/@plurid/performer-requests\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@plurid/performer-requests.svg?logo=npm\u0026colorB=1380C3\u0026style=for-the-badge\" alt=\"Version\"\u003e\n\u003c/a\u003e\n\n[@plurid/performer-requests][performer-requests] • the API requests\n\n[performer-requests]: https://github.com/plurid/performer/tree/master/packages/performer-requests\n\n\n\n## [Codeophon](https://github.com/ly3xqhl8g9/codeophon)\n\n+ licensing: [delicense](https://github.com/ly3xqhl8g9/delicense)\n+ versioning: [αver](https://github.com/ly3xqhl8g9/alpha-versioning)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplurid%2Fperformer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplurid%2Fperformer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplurid%2Fperformer/lists"}