Quick Start

Quick start guide to get started with GRGate.

There is multiple options to install GRGate in a git repository. The preferred option being to self host GRGate yourself but you can also decide to install GRGate from the GitHub marketplace.

Using the GRGate GitHub App

  1. Install the GRGate GitHub App to your repository or organisation

  2. Create a .grgate.yaml file at the root of your repository with the following configuration:

    # automerge releases if the following status succeeded
    statuses:
      - e2e happy flow
      - e2e feature A
    
  3. Create a draft release

  4. Start updating commits using the GRGgate CLI, for example (GitHub):

    grgate status set your-org/your-repository-name \
        --commit 93431f42d5a5abc2bb6703fc723b162a9d2f20c3 \
        --name "e2e happyflow" \
        --status completed \
        --state success
    
    grgate status set your-org/your-repository-name \
        --commit 93431f42d5a5abc2bb6703fc723b162a9d2f20c3 \
        --name "e2e feature A" \
        --status completed \
        --state success
    
  5. After GRGate process the repo, the draft release will be published!

Self hosting GRGate using Helm chart

A Helm chart is available in the FikaWorks Helm charts repository.

Create a GitHub APP or GitLab token, then update the values.yaml file.

helm repo add fikaworks https://fikaworks.github.io/helm-charts
helm install --name grgate --values my-values.yaml fikaworks/grgate

Running GRGate in Docker

The GRGate server can be run in Docker. The following example mount a global config file and a GitHub private key. You can then send GitHub webhook events to http://localhost:8080/github/webhook, GRGate will then process the corresponding repositories.

docker run -ti -p 8080:8080 -p 8086:8086 -p 9101:9101 \
    -v $PWD/config.yaml:/etc/grgate/config.yaml \
    -v $PWD/github.private-key.pem:/etc/grgate/github.private-key.pem \
    fikaworks/grgate

Exposed endpoints

By default GRGate expose the following endpoints:

AddressDescription
http://0.0.0.0:8080Webserver which listen to webhooks
http://0.0.0.0:9101/metricsPrometheus metrics
http://0.0.0.0:8086/readyReadiness probe
http://0.0.0.0:8086/liveLiveness probe