---
title: Getting Started with Automations
description: Learn how to create your first automation to automatically trigger builds from Git events using Capawesome Cloud.
---

# Getting Started

In this guide, you will learn how to create your first automation using Capawesome Cloud.

## Prerequisites

Before you begin, ensure you have:

- A [Capawesome Cloud](https://console.cloud.capawesome.io){:target="_blank"} account and organization.
- An app created in the console (see [Getting Started with Native Builds](../native-builds/setup.md)).
- A Git repository connected to the app (see [Connect Git Repository](../native-builds/setup.md#step-2-connect-git-repository)).
- A Git provider account linked (see [Integrations](../integrations/index.md)).
- An organization plan with build minutes.

## Step 1: Create an Automation

=== "CLI"

    Create an automation with the [`apps:automations:create`](../cli/commands.md#appsautomationscreate) command:

    ```bash
    npx @capawesome/cli apps:automations:create \
      --name nightly \
      --platform android \
      --trigger-type branch \
      --trigger-pattern main
    ```

    Run the command without options to be guided through the required values interactively.

=== "Console"

    Navigate to the [Automations](https://console.cloud.capawesome.io/apps/_/automations){:target="_blank"} page of your app in the Capawesome Cloud Console, click on the **Create automation** button, and configure the following properties:

    - **Name**: A display name to identify the automation.
    - **Platform**: The target platform — Android, iOS, or Web.
    - **Trigger type**: The Git event that triggers the build — **Branch** (triggers on push to a branch) or **Tag** (triggers on tag creation).
    - **Trigger pattern**: The branch or tag name to match. For example, `main` to trigger on pushes to the `main` branch, or `v*` to trigger on tags starting with `v`.
    - **Commit message pattern** (optional): A pattern to filter triggers based on the commit message content.

## Step 2: Configure Build Settings (Optional)

You can optionally configure additional build settings for the automation:

=== "CLI"

    Pass the build settings as options — signing certificates, environments, native configurations, store destinations, and Live Update channels are referenced by name:

    ```bash
    npx @capawesome/cli apps:automations:create \
      --name release \
      --platform ios \
      --trigger-type tag \
      --trigger-pattern "v*" \
      --type app-store \
      --certificate "Distribution" \
      --environment production \
      --destination "TestFlight"
    ```

=== "Console"

    Configure the build settings in the **Create automation** dialog:

    - **Build type**: The type of build to create (see [Build Types](../native-builds/build-types.md)).
    - **Build stack**: The build stack to use (see [Build Stacks](../native-builds/build-stacks.md)).
    - **Signing certificate**: The signing certificate for the build (see [Signing certificates](../native-builds/certificates/index.md)).
    - **Environment**: The environment variables for the build (see [Environments](../native-builds/environments.md)).
    - **Store destination**: The publish destination for the build artifact (see [Store destinations](../app-store-publishing/destinations/index.md)).
    - **Channel**: The Live Update channel to deploy to (see [Channels](../live-updates/channels.md)).

## Step 3: Verify Webhook Setup

When you create an automation, Capawesome Cloud automatically registers a webhook on your connected Git repository. This webhook listens for the configured Git events and triggers builds accordingly.

If automatic registration fails, you can configure the webhook manually. See [Webhooks](./webhooks.md) for instructions.

## Step 4: Test the Automation

Push a commit or create a tag that matches your trigger pattern and verify that:

1. The automation's **Last triggered** timestamp updates on the Automations page.
2. A new build appears on the [Builds](https://console.cloud.capawesome.io/apps/_/builds){:target="_blank"} page.

Congratulations! You have successfully created your first automation using Capawesome Cloud. 🎉

## Managing Automations

After creating an automation, you can manage it from the Automations page:

- **Edit**: Update the automation's configuration by clicking on the **Edit** button.
- **Enable/Disable**: Toggle an automation on or off without deleting it. Disabled automations do not trigger builds.
- **History**: View the build history for a specific automation by clicking on the **History** button.
- **Delete**: Remove an automation by clicking on the **Delete** button and confirming the deletion.

Listing, editing, and deleting automations also work from the CLI. See [Manage Automations](manage-automations.md).

## Skipping Automations

You can skip automations for a specific push by including one of the following keywords in the **head commit** message:

- `[skip ci]`
- `[ci skip]`
- `[skip capawesome]`
- `[capawesome skip]`

The keyword check is **case-insensitive** and can appear anywhere in the commit message.
For example:

```
docs: update readme [skip ci]
```

This is useful for documentation-only changes or other commits that don't require a build.

!!! note

    Only the head commit message (i.e. the latest commit in the push) is checked.

## Next Steps

<div class="grid cards" markdown>

-   :material-tune:{ .lg .middle } **Attach Build Settings**

    ---

    Sign and configure the builds your automation triggers.

    [:octicons-arrow-right-24: Attach build settings](attach-build-settings.md)

-   :material-rocket-launch:{ .lg .middle } **Auto-Submit to a Store**

    ---

    Build and submit to TestFlight or Google Play on every tag.

    [:octicons-arrow-right-24: Auto-submit to a store](auto-submit.md)

-   :material-cloud-upload:{ .lg .middle } **Auto-Publish a Live Update**

    ---

    Build and ship an over-the-air update on every push.

    [:octicons-arrow-right-24: Auto-publish a Live Update](auto-publish-live-update.md)

</div>

## Bonus: Video Walkthrough

Prefer to watch? This walkthrough covers creating your first automation from start to finish:

<div style="margin-top: 2rem;">
  <iframe
    width="100%"
    height="450px"
    src="https://www.youtube-nocookie.com/embed/39WNZroLZOE?rel=0&modestbranding=1"
    frameborder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
    referrerpolicy="strict-origin-when-cross-origin"
    allowfullscreen
  ></iframe>
</div>
