How is RelativeCI working?

RelativeCI uses agents(CLI, webpack-plugin, GitHub Action) that run during the continuous integration to collect, validate, filter, and send bundle stats and build information to the service API.

The service analyzes the data using bundle-stats, saves the bundle analysis, and triggers the project-specific integrations(GitHub check report, GitHub Pull Request comment, GitHub Commit Status review, Slack notification).

The web application(https://app.relative-ci.com) allows users to view the in-depth job reports, inspect metric trends, or view the project dashboard.

What is a base branch?

The base branch is the project's default branch and is used to get the baseline for a new job. When a project is created, the base branch is populated from your GitHub repository default branch, but you can change it to match your workflow on Project -> Settings page.

What is a job baseline?

The baseline job is the latest job in the base branch at the moment when the new job is created. The baseline job metrics are used to compare and generate any of the metrics & insights that depend on baseline values (e.g.: New packages, duplicate packages, cache invalidation).


What repository permissions does the RelativeCI GitHub App need?

RelativeCI GitHub App installation asks for the following permissions:

  • Metadata - list collaborators and repository metadata
  • Commit Statuses - add commit status
  • Checks - add commit status checks and reports
  • Pull requests - add pull request comments

RelativeCI GitHub App does not have access to the repository content or the commit history.

What user permissions does the RelativeCI GitHub App need?

RelativeCI GitHub App requires read access to the account email.

Additionally, GitHub Apps receives read access to the repository metadata of the repositories where they are installed. RelativeCI uses this information to enable users to set up new projects based on the repositories they have access to and to validate users' access to a project.

What does the GitHub App Act on your behalf mean?

The GitHub App signup Act on your behalf label informs users that the GitHub App can interact with GitHub resources on your behalf. However, the following restrictions are in place:

  1. can operate only in the context of the permissions of the app
  2. the GitHub App gets read access only to the repository metadata where the application is installed
  3. as an organization/personal account admin, you can manage the GitHub App permissions individually

About GitHub Apps acting on your behalf

User authentication is needed only for authentication and authorization. RelativeCI uses the GitHub App installation tokens to interact with your GitHub resources(e.g.: add commit status, checks, and pull request comments).


What data is the agent sending?

The agent validates, filters the bundle stats, and sends only the necessary data (eg: asset/module name and size, chunk information). For the build information, the agent relies on env-ci to read information about the current build job.

To inspect the agent payload, you can use payloadFilepath option to save the data on disk:

What environment variables are required?

@relative-ci/agent expects the presence of specific environment variables to identify the project and label individual jobs:

  • RELATIVE_CI_KEY: the RelativeCI API key specific for your project
  • Continuous Integration(CI) environment variables: RelativeCI uses env-ci to normalize the variables across different CI services. The agent uses the following properties: branch, build, buildUrl, commit, isCi, pr, prBranch, service, slug.

What Continuous Integration(CI) services does RelativeCI support?

RelativeCI uses env-ci to get the build information for each build. env-ci supports all major CI services: AppVeyor, Azure Pipelines, Bamboo, Bitbucket, Bitrise, Buddy, Buildkite, CircleCI, Cirrus CI, Cloudflare Pages, AWS CodeBuild, Codefresh, Codeship, Drone, GitHub Actions, GitLab CI/CD, Jenkins, Netlify, Puppet, Sail CI, Screwdriver.cd, Scrutinizer, Semaphore, Shippable, TeamCity, Travis CI, Vela, Vercel, Wercker, JetBrains Space, Woodpecker CI.

If your CI service is missing from the list or if you encounter any issues with your setup, feel free to get in touch.

How can I enable the webpack plugin only for one build task?

If you run multiple build tasks for every commit, it is recommended to configure @relative-ci/agent to run only once during a build task. To achieve this, you can enable the plugin based on a specific environment variable:

const { RelativeCiAgentWebpackPlugin } = require('@relative-ci/agent');
module.exports = {
// ... your webpack config
plugins: [
// ... other plugins
new RelativeCiAgentWebpackPlugin({
enabled: process.env.RELATIVE_CI

Run the build task with the environment variable:

RELATIVE_CI=true npm run build


How do you count the number of jobs?

A job is a successful processed request sent by the agent for one of your projects. We count all the jobs across all the organization's projects.

How do you measure job stats size?

The job stats size is the size of the data filtered and uploaded by relative-ci/agent and processed by RelativeCI. You can view the job stats on the job info section or by enabling DEBUG mode on the agent (check debug instructions based on your agent installation type). Also, you can view the daily stats usage for the entire organization on Organization -> Settings -> Usage page.

As an example, the job stats size for an application with 100 assets and 1500 module is approximately 250KB.

What if I exceed my subscription's monthly quota?

You will receive notifications when your usage quota for the current billing period will reach 90% and 100% of the limit. If your organization's usage exceeds any of the limits, RelativeCI will stop processing job requests until the end of the current period. To avoid un-processed jobs, you can consider upgrading to a larger plan or configure your CI service to not run the agent on every build.

What are the limits of the Open Source plan?

The Open Source subscriptions are set up initially with fair usage monthly limits(500 jobs, 250MiB stats). If you get notified of reaching your monthly quota, don't hesitate to contact us, and we will happily increase the limits.


What payment methods are supported?

RelativeCI uses Paddle.com to manage subscriptions. We support all major card providers and PayPal.

Will I be charged sales tax or VAT?

Depending on your region or entity type (consumer/organization), Paddle will collect the applicable tax. The total price will be calculated at the payment step.

Can I cancel my account?

You can cancel your organization subscription at any time.

What is your refund policy?

You can ask for a refund within 14 days from your latest payment.

Have other questions?Contact us via email, Twitter, or GitHub!