---
url: 'https://dxpr.com/pt-pt/hc/documentacao/aprender-dxpr-builder/avancado/ci-cd'
title: 'Integração CI/CD | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T11:44:54+00:00'
updated: '2026-10-24T17:19:22+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  O conteúdo do DXPR Builder guarda-se em campos de texto do Drupal e
  entidades de configuração. Esta página explica como incluir conteúdo do DXPR
  Builder no pipeline de CI/CD e nos fluxos de implementação.
  Armazenamento de conteúdo
  O DXPR Builder guarda os dados na base de dados e na configuração:
tags:
  - 'Run it in production'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T17:19:22+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Integração CI/CD'
      description: |-
        O conteúdo do DXPR Builder guarda-se em campos de texto do Drupal e
        entidades de configuração. Esta página explica como incluir conteúdo do DXPR
        Builder no pipeline de CI/CD e nos fluxos de implementação.
        Armazenamento de conteúdo
        O DXPR Builder guarda os dados na base de dados e na configuração:
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T11:44:54+0000'
      dateModified: '2026-10-24T17:19:22+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/pt-pt/hc/documentacao/aprender-dxpr-builder/avancado/ci-cd'
      articleSection: 'Operar em produção'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/pt-pt/hc/documentacao/aprender-dxpr-builder/avancado/ci-cd'
      description: |-
        O conteúdo do DXPR Builder guarda-se em campos de texto do Drupal e
        entidades de configuração. Esta página explica como incluir conteúdo do DXPR
        Builder no pipeline de CI/CD e nos fluxos de implementação.
        Armazenamento de conteúdo
        O DXPR Builder guarda os dados na base de dados e na configuração:
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Início
            item: 'https://dxpr.com/pt-pt'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: pt-pt
---
[Centro de ajuda](/pt-pt/node/75)/[Documentação](/pt-pt/hc/documentacao) /[Aprender DXPR Builder](/pt-pt/hc/documentation/learn-dxpr-builder) /[Gerir o site](/pt-pt/hc/documentation/learn-dxpr-builder/manage) /[Operar em produção](/pt-pt/hc/documentation/learn-dxpr-builder/manage/production) # Integração CI/CD.

 Aprender DXPR BuilderGerir o siteOperar em produção

   ## Neste guia

 Guias relacionados

- [Encenação de conteúdos](/pt-pt/hc/documentacao/aprender-dxpr-builder/avancado/encenacao-de-conteudos)

O conteúdo do DXPR Builder guarda-se em campos de texto do Drupal e entidades de configuração. Esta página explica como incluir conteúdo do DXPR Builder no pipeline de CI/CD e nos fluxos de implementação.

## Armazenamento de conteúdo

O DXPR Builder guarda os dados na base de dados e na configuração:

| Data type | Storage | Deployment method |
|---|---|---|
| Conteúdo de página | Valores de campo de texto (base de dados) | Sincronização ou migração de conteúdo |
| Modelos de página | Entidades de configuração | Exportação/importação de configuração |
| Modelos de utilizador | Entidades de configuração | Exportação/importação de configuração |
| Definições | Configuração; guarda a chave de produto em **Configuration storage** | Exportação/importação de configuração quando a chave está numa entidade Key; ver abaixo |
| Perfis de utilizador | Entidades de configuração | Exportação/importação de configuração |
| Chave de produto | Definições, ou uma entidade Key que guarda a chave ou aponta para ela | Por ambiente; ver abaixo |

## Gestão de configuração

As definições e modelos do DXPR Builder são configuração do Drupal. Implemente-os com a gestão de configuração padrão do Drupal.

### Exportar

```bash
drush config:export

```

Isto exporta estes ficheiros de configuração do DXPR Builder:

- `dxpr_builder.settings.yml`
- `dxpr_builder.dxpr_builder_profile.*.yml`
- `dxpr_builder.page_template.*.yml`
- `dxpr_builder.user_template.*.yml`
- `key.key.dxpr_builder_jwt.yml`, ou a entidade Key selecionada para a chave de produto

Não registe `dxpr_builder.settings.yml` enquanto a chave de produto lá está; consulte [Chaves de produto](#product-keys) abaixo.

### Importar

```bash
drush config:import

```

### Exemplo de pipeline de CI

`drush deploy` corre as atualizações de base de dados, importa a configuração e reconstrói as caches pela ordem certa. Os lançamentos do DXPR Builder convertem conteúdo nas atualizações de base de dados, por isso corra-as em cada implementação.

```yaml
deploy:
  script:
    - drush deploy -y

```

## Implementação de conteúdo

O conteúdo de página (o HTML em campos de texto) é conteúdo de base de dados, não configuração. Opções para implementar conteúdo entre ambientes:

### Módulo Default Content

Exporte conteúdo como ficheiros YAML e importe-os no ambiente de destino.

### Sincronização de conteúdo

Use o módulo Content Synchronization (`content_sync`) para exportar e importar entidades de conteúdo.

### Sincronização de base de dados

Copie a base de dados de um ambiente para outro:

```bash
drush sql:sync @source @target

```

## Considerações por ambiente

### Caminhos de ficheiros

O conteúdo do DXPR Builder refere imagens carregadas por caminho de ficheiro. Sincronize o diretório de ficheiros entre ambientes.

### Chaves de produto

Cada ambiente precisa de uma chave de produto válida. Com o **Configuration storage** predefinido, `dxpr_builder.settings.yml` guarda essa chave em texto claro, como `json_web_token`. Antes de o ficheiro ir para o repositório:

1. Crie uma Key cujo fornecedor lê uma variável de ambiente ou um ficheiro, em **Configuration** &gt; **System** &gt; **Keys**(`/admin/config/system/keys`).
2. Em **DXPR Studio** &gt; **DXPR Builder** &gt; **General Settings**(`/admin/dxpr_studio/dxpr_builder/settings`), defina **Storage method** como **Key module**, escolha essa chave em **Key** e clique em **Save settings**. Isto limpa `json_web_token`.
3. Exporte outra vez a configuração e verifique que `dxpr_builder.settings.yml` já não contém a chave.

Uma Key com o fornecedor **Configuration** guarda o valor no próprio ficheiro exportado, por isso também não é seguro registá-la.

## O que se segue?

[Encenação de conteúdos entre ambientes](/pt-pt/hc/documentation/learn-dxpr-builder/advanced/content-staging) para continuar a explorar o DXPR Builder.