# Automate Bitbucket releases

## Step 1. Enable Instance API

To enable UI Bakery Instance API please follow this [guide](https://docs.uibakery.io/on-premise-features/instance-api#enabling-the-instance-api)

## Step 2. Create pipeline:

* Go to **Deployments** tab
* Paste the following content into **"bitbucket-pipelines.yml"**:

```yaml
image: atlassian/default-image:3

pipelines:
  branches:
      main:
        - stage:
            name: 'Deploy'
            deployment: production
            steps:
            - step:
                name: 'Pull main branch'
                script:
                  - |
                      curl https://UI_BAKERY_INSTANCE/api/instance/app/APP_ID/pull?uib_branch=main \
                      -X POST \
                      -H "Content-Type: application/json" \
                      -H "Authorization: Bearer TOKEN"
            - step:
                name: 'Deployment to Production'
                script:
                  - |
                      curl https://UI_BAKERY_INSTANCE/api/instance/app/APP_ID/release \
                      -X POST \
                      -d '{"version":"1.0.1", "prod": true, "staging": false, "description": "Automated release"}' \
                      -H "Content-Type: application/json" \
                      -H "Authorization: Bearer TOKEN"

```

* Replace the `UI_BAKERY_INSTANCE` placeholder with your domain name.
* Replace `APP_ID` with your app ID (can be found in URL).
* Replace `TOKEN` with the value of your `UI_BAKERY_INSTANCE_API_TOKEN` variable

The workflow will be executed on every push/merge into the "main" branch
