---
title: Integrate Capawesome Cloud with GitLab CI/CD
description: Use GitLab CI/CD to build your web assets and create bundles on Capawesome Cloud using the Capawesome CLI.
---

# GitLab CI/CD

You can easily publish Live Updates to Capawesome Cloud using [GitLab CI/CD](https://docs.gitlab.com/ci/){:target="_blank"}.
In this guide, we will show you how to create a GitLab CI/CD pipeline that builds your web assets and creates a bundle on Capawesome Cloud using the [Capawesome CLI](../../cli/index.md).

## Preparation

Before you start, make sure you have a Capawesome Cloud account and an app set up. Next, you need to create a Capawesome Cloud token and add it to your GitLab project as a CI/CD variable.

### Create a Capawesome Cloud token

Create a new Capawesome Cloud token via the [Capawesome Cloud Console](https://console.cloud.capawesome.io/settings/tokens){:target="_blank"}. Just navigate to the `Tokens` page in the settings and click on the `Create token` button. Choose a name for the token and click on the `Create` button. The token is now copied to your clipboard.

### Create a GitLab CI/CD Variable

Add the Capawesome Cloud token to your GitLab project as a CI/CD variable with the name `CAPAWESOME_CLOUD_TOKEN` as described in [CI/CD variables](https://docs.gitlab.com/ci/variables/){:target="_blank"}. Make sure to mark the variable as masked and protected.

## Pipeline

### Create the Pipeline

Create a new GitLab CI/CD pipeline file in your repository under `.gitlab-ci.yml` with the following content:

```yaml
spec:
  inputs:
    channel:
      description: The name of the channel to deploy the update to.
      default: production
---
stages:
  - deploy

deploy-live-update:
  stage: deploy
  image: node:20
  before_script:
    - npm ci
    - npm run build
    - npm install -g @capawesome/cli@latest
  script:
    - npx @capawesome/cli apps:channels:create --app-id 00000000-0000-0000-0000-000000000000 --name $[[ inputs.channel ]] --ignore-errors
    - npx @capawesome/cli apps:liveupdates:upload --app-id 00000000-0000-0000-0000-000000000000 --path dist --channel $[[ inputs.channel ]]
```

This pipeline will build your web assets, log in to Capawesome Cloud (using the `CAPAWESOME_CLOUD_TOKEN` environment variable), create a channel (if it does not exist yet), and create a bundle for the specified channel.

### Trigger the Pipeline

You can run the pipeline manually by navigating to the `CI/CD` > `Pipelines` section in your GitLab project and clicking on the `Run pipeline` button. You will be prompted to enter the channel name as a variable. Of course, you can also trigger the pipeline automatically by using different rules like `push` or `merge_request`.
