

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Compartilhar artefatos e arquivos entre ações
<a name="workflows-working-artifacts"></a>

*Artefato* é a saída de uma ação de fluxo de trabalho e geralmente consiste em uma pasta ou um arquivameto de arquivos. Os artefatos são importantes porque permitem que você compartilhe arquivos e informações entre as ações.

Por exemplo, você pode ter uma ação de criação que *gera* um arquivo `sam-template.yml`, mas deseja que uma ação de implantação a *use*. Nesse cenário, você usaria um artefato para permitir que a ação de criação compartilhasse o arquivo `sam-template.yml` com a ação de implantação. O código pode ser semelhante a este:

```
Actions:
  BuildAction:
    Identifier: aws/build@v1
    Steps:
      - Run: sam package --output-template-file sam-template.yml
    Outputs:
      Artifacts:
        - Name: MYARTIFACT
          Files:
            - sam-template.yml
  DeployAction:
    Identifier: aws/cfn-deploy@v1  
    Inputs:
      Artifacts:
        - MYARTIFACT
    Configuration:
      template: sam-template.yml
```

No código anterior, a ação de criação (`BuildAction`) gera um arquivo `sam-template.yml` e o adiciona a um artefato de saída chamado `MYARTIFACT`. Uma ação de implantação subsequente (`DeployAction`) especifica `MYARTIFACT` como uma entrada, dando acesso ao arquivo `sam-template.yml`.

**Topics**
+ [Posso compartilhar artefatos sem especificá-los como saídas e entradas?](#workflows-working-artifacts-share)
+ [Posso compartilhar artefatos entre fluxos de trabalho?](#workflows-working-artifacts-share-wf)
+ [Exemplos de artefatos](workflows-working-artifacts-ex.md)
+ [Definir um artefato de saída](workflows-working-artifacts-output.md)
+ [Definir um artefato de entrada](workflows-working-artifacts-refer.md)
+ [Referência de arquivos em um artefato](workflows-working-artifacts-refer-files.md)
+ [Baixar artefatos](workflows-download-workflow-outputs.md)

## Posso compartilhar artefatos sem especificá-los como saídas e entradas?
<a name="workflows-working-artifacts-share"></a>

Sim, você pode compartilhar artefatos entre ações sem especificá-los nas seções `Outputs` e `Inputs` do código de YAML de suas ações. Para fazer isso, você deve ativar o compartilhamento de computação. Para ter mais informações sobre o compartilhamento de computação e como especificar artefatos quando ele está ativado, consulte [Compartilhamento de computação entre ações](compute-sharing.md). 

**nota**  
Embora o recurso de compartilhamento de computação permita que você simplifique o código YAML do seu fluxo de trabalho eliminando a necessidade das seções `Outputs` e `Inputs`, o recurso tem limitações que você deve conhecer antes de ativá-lo. Para ter informações sobre essas limitações, consulte [Considerações sobre compartilhamento de computação](compute-sharing.md#compare-compute-sharing).

## Posso compartilhar artefatos entre fluxos de trabalho?
<a name="workflows-working-artifacts-share-wf"></a>

Não, você não pode compartilhar artefatos entre fluxos de trabalho diferentes. No entanto, pode compartilhar artefatos entre ações dentro do mesmo fluxo de trabalho.

# Exemplos de artefatos
<a name="workflows-working-artifacts-ex"></a>

Os exemplos a seguir mostram como gerar, inserir e referenciar artefatos no arquivo de definição de CodeCatalyst fluxo de trabalho da Amazon.

**Topics**
+ [Exemplo: geração de um artefato](#workflows-working-artifacts-ex-basic)
+ [Exemplo: inserir um artefato gerado por outra ação](#workflows-working-artifacts-ex-ref)
+ [Exemplo: referência de arquivos em vários artefatos](#workflows-working-artifacts-ex-ref-file)
+ [Exemplo: referência de um arquivo em um único artefato](#workflows-working-artifacts-ex-ref-file-one)
+ [Exemplo: referenciar um arquivo em um artefato quando um está presente WorkflowSource](#workflows-working-artifacts-ex-ref-file-wf-source)
+ [Exemplo: referência a um arquivo em um artefato quando um grupo de ações está presente](#workflows-working-artifacts-ex-groups)

## Exemplo: geração de um artefato
<a name="workflows-working-artifacts-ex-basic"></a>

O exemplo a seguir mostra como gerar um artefato que inclui dois arquivos .jar.

```
Actions:
  Build:
    Identifier: aws/build@v1
    Outputs:
      Artifacts:
        - Name: ARTIFACT1
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
```

## Exemplo: inserir um artefato gerado por outra ação
<a name="workflows-working-artifacts-ex-ref"></a>

O exemplo a seguir mostra como gerar um artefato chamado `ARTIFACT4` em `BuildActionA`, e inseri-lo em `BuildActionB`.

```
Actions:
  BuildActionA:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ARTIFACT4
          Files:
            - build-output/file1.jar
            - build-output/file2.jar
  BuildActionB:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ARTIFACT4
    Configuration:
```

## Exemplo: referência de arquivos em vários artefatos
<a name="workflows-working-artifacts-ex-ref-file"></a>

O exemplo a seguir mostra como gerar dois artefatos chamados `ART5` e `ART6` em `BuildActionC` e, depois, referenciar dois arquivos chamados `file5.txt` (no artefato `ART5`) e `file6.txt` (no artefato `ART6`) em `BuildActionD` (em `Steps`).

**nota**  
Para ter mais informações sobre como referenciar arquivos, consulte [Referência de arquivos em um artefato](workflows-working-artifacts-refer-files.md).

**nota**  
Embora o exemplo mostre o prefixo `$CATALYST_SOURCE_DIR_ART5` que está sendo usado, você pode omiti-lo. Isso ocorre porque `ART5` é a *entrada primária*. Para saber mais sobre a entrada primária, consulte [Referência de arquivos em um artefato](workflows-working-artifacts-refer-files.md). 

```
Actions:
  BuildActionC:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART5
          Files:
            - build-output/file5.txt
        - Name: ART6
          Files:
            - build-output/file6.txt
  BuildActionD:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART5
        - ART6
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART5/build-output && cat file5.txt
        - run: cd $CATALYST_SOURCE_DIR_ART6/build-output && cat file6.txt
```

## Exemplo: referência de um arquivo em um único artefato
<a name="workflows-working-artifacts-ex-ref-file-one"></a>

O exemplo a seguir mostra como gerar um artefato chamado `ART7` em `BuildActionE` e, depois, referenciar `file7.txt` (no artefato `ART7`) em `BuildActionF` (em `Steps`).

Observe como a referência não exige o `$CATALYST_SOURCE_DIR_` *artifact-name* prefixo na frente do `build-output` diretório, como acontecia em[Exemplo: referência de arquivos em vários artefatos](#workflows-working-artifacts-ex-ref-file). Isso ocorre porque há somente um item especificado em `Inputs`.

**nota**  
Para ter mais informações sobre como referenciar arquivos, consulte [Referência de arquivos em um artefato](workflows-working-artifacts-refer-files.md).

```
Actions:
  BuildActionE:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART7
          Files:
            - build-output/file7.txt
  BuildActionF:
    Identifier: aws/build@v1  
    Inputs:
      Artifacts:
        - ART7
    Configuration:
      Steps:
        - run: cd build-output && cat file7.txt
```

## Exemplo: referenciar um arquivo em um artefato quando um está presente WorkflowSource
<a name="workflows-working-artifacts-ex-ref-file-wf-source"></a>

O exemplo a seguir mostra como gerar um artefato chamado `ART8` em `BuildActionG` e, depois, referenciar `file8.txt` (no artefato `ART8`) em `BuildActionH` (em `Steps`).

Observe como a referência exige o `$CATALYST_SOURCE_DIR_` *artifact-name* prefixo, como aconteceu em[Exemplo: referência de arquivos em vários artefatos](#workflows-working-artifacts-ex-ref-file). Isso ocorre porque há vários itens especificados em `Inputs` (uma origem e um artefato), então você precisa do prefixo para indicar onde procurar o arquivo.

**nota**  
Para ter mais informações sobre como referenciar arquivos, consulte [Referência de arquivos em um artefato](workflows-working-artifacts-refer-files.md).

```
Actions:
  BuildActionG:
    Identifier: aws/build@v1  
    Outputs:
      Artifacts:
        - Name: ART8
          Files:
            - build-output/file8.txt
  BuildActionH:
    Identifier: aws/build@v1  
    Inputs:
      Sources:
        - WorkflowSource
      Artifacts:
        - ART8
    Configuration:
      Steps:
        - run: cd $CATALYST_SOURCE_DIR_ART8/build-output && cat file8.txt
```

## Exemplo: referência a um arquivo em um artefato quando um grupo de ações está presente
<a name="workflows-working-artifacts-ex-groups"></a>

O exemplo a seguir mostra como gerar um artefato chamado `ART9` em `ActionGroup1`, `ActionI`, e referenciar `file9.txt` (no artefato `ART9`) em `ActionJ`.

Para ter mais informações sobre como referenciar arquivos, consulte [Referência de arquivos em um artefato](workflows-working-artifacts-refer-files.md).

```
Actions:
  ActionGroup1:
    Actions:
      ActionI:
        Identifier: aws/build@v1
        Outputs:
          Artifacts:
            - Name: ART9
              Files:
                - build-output/file9.yml
      ActionJ:
        Identifier: aws/cfn-deploy@v1 
        Inputs:
          Sources:
            - WorkflowSource
          Artifacts:
            - ART9
        Configuration:
          template: /artifacts/ActionGroup1@ActionJ/ART9/build-output/file9.yml
```

# Definir um artefato de saída
<a name="workflows-working-artifacts-output"></a>

Use as instruções a seguir para definir um artefato que você deseja que uma CodeCatalyst ação da Amazon produza. Esse artefato então fica disponível para uso de outras ações.

**nota**  
Nem todas as ações são compatíveis com artefatos de saída. Para determinar se sua ação é compatível, siga as instruções do editor visual a seguir e veja se a ação inclui um botão de **Artefatos de saída** na guia **Saídas**. Se ela incluir, significa que os artefatos de saída são compatíveis. 

------
#### [ Visual ]

**Para definir um artefato de saída usando o editor visual**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. Selecione **Visual**.

1. No diagrama do fluxo de trabalho, selecione a ação que produzirá o artefato.

1. Escolha a guia **Outputs**.

1. Em **Artefatos**, selecione **Adicionar artefato**.

1. Selecione **Adicionar artefato** e insira as informações nos campos, da seguinte maneira.

    **Nome do artefato de criação** 

   Especifique o nome de um artefato gerado pela ação. Os nomes de artefato devem ser exclusivos em um fluxo de trabalho e estão limitados a caracteres alfanuméricos (a-z, A-Z, 0-9) e sublinhados (\$1). Espaços, hifens (-) e outros caracteres especiais não são permitidos. Não é possível usar aspas para habilitar espaços, hifens e outros caracteres especiais em nomes de artefato de saída.

   Para ter mais informações sobre artefatos, inclusive exemplos, consulte [Compartilhar artefatos e arquivos entre ações](workflows-working-artifacts.md).

    **Arquivos produzidos por criação** 

   Especifique os arquivos CodeCatalyst incluídos no artefato que é gerado pela ação. Esses arquivos são gerados pela ação do fluxo de trabalho quando ela é executada e também estão disponíveis no repositório de origem. Os caminhos de arquivo podem residir em um repositório de origem ou em um artefato de uma ação anterior e são relativos ao repositório de origem ou à raiz do artefato. É possível usar padrões glob para especificar caminhos. Exemplos:
   + Para especificar um único arquivo que esteja na raiz do local de compilação ou do local do repositório de origem, use `my-file.jar`.
   + Para especificar um único arquivo em um subdiretório, use `directory/my-file.jar` ou `directory/subdirectory/my-file.jar`.
   + Para especificar todos os arquivos, use `"**/*"`. O padrão glob `**` indica que corresponde a qualquer número de subdiretórios.
   + Para especificar todos os arquivos e diretórios em um diretório chamado `directory`, use `"directory/**/*"`. O padrão glob `**` indica que corresponde a qualquer número de subdiretórios.
   + Para especificar todos os arquivos em um diretório chamado `directory`, mas não em nenhum de seus subdiretórios, use `"directory/*"`. 
**nota**  
Se o caminho do arquivo incluir um ou mais asteriscos (`*`) ou outro caractere especial, coloque o caminho entre aspas duplas (`""`). Para ter mais informações sobre caracteres especiais, consulte [Diretrizes e convenções de sintaxe](workflow-reference.md#workflow.terms.syntax.conv).

   Para ter mais informações sobre artefatos, inclusive exemplos, consulte [Compartilhar artefatos e arquivos entre ações](workflows-working-artifacts.md).
**nota**  
Talvez seja necessário adicionar um prefixo ao caminho do arquivo para indicar em qual artefato ou origem encontrá-lo. Para obter mais informações, consulte [Fazer referência a arquivos do repositório de origem](workflows-sources-reference-files.md) e [Referência de arquivos em um artefato](workflows-working-artifacts-refer-files.md).

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

------
#### [ YAML ]

**Como definir um artefato de saída usando o editor YAML**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. Selecione **YAML**.

1. Em uma ação de fluxo de trabalho, adicione um código semelhante ao seguinte:

   ```
   action-name:
     Outputs:
       Artifacts:
         - Name: artifact-name
           Files:
             - file-path-1
             - file-path-2
   ```

   Para obter mais exemplos, consulte [Exemplos de artefatos](workflows-working-artifacts-ex.md). Para ter mais informações, consulte [Definição do YAML do fluxo de trabalho](workflow-reference.md) para sua ação.

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

------

# Definir um artefato de entrada
<a name="workflows-working-artifacts-refer"></a>

Se você quiser usar um artefato gerado por outra CodeCatalyst ação da Amazon, você deve especificá-lo como uma entrada para a ação atual. Talvez você possa especificar vários artefatos como entrada – isso depende da ação. Para ter mais informações, consulte [Definição do YAML do fluxo de trabalho](workflow-reference.md) para sua ação.

**nota**  
Você não pode referenciar artefatos de outros fluxos de trabalho.

Use as instruções a seguir para especificar um artefato de outra ação como entrada para a ação atual.

**Pré-requisito**  
Antes de começar, certifique-se de ter gerado o artefato da outra ação. Para obter mais informações, consulte [Definir um artefato de saída](workflows-working-artifacts-output.md). A saída do artefato o torna disponível para uso de outras ações.

------
#### [ Visual ]

**Para especificar um artefato como entrada para uma ação (editor visual)**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. Selecione **Visual**.

1. No diagrama do fluxo de trabalho, selecione a ação onde deseja especificar um artefato como entrada.

1. Selecione **Entradas**.

1. Em **Artefatos – opcional**, faça o seguinte:

   Especifique artefatos de ações anteriores que você deseja fornecer como entrada para essa ação. Esses artefatos já devem estar definidos como artefatos de saída em ações anteriores.

   Se você não especificar nenhum artefato de entrada, deverá especificar pelo menos um repositório de origem em `action-name/Inputs/Sources`.

   Para ter mais informações sobre artefatos, inclusive exemplos, consulte [Compartilhar artefatos e arquivos entre ações](workflows-working-artifacts.md).
**nota**  
Se a lista suspensa **Artefatos – opcional** não estiver disponível (editor visual) ou se você receber erros ao validar o YAML (editor YAML), talvez seja porque a ação permite apenas uma entrada. Nesse caso, tente remover a entrada de origem.

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

------
#### [ YAML ]

**Como especificar um artefato como entrada para uma ação (editor YAML)**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. Selecione **YAML**.

1. Na ação em que você deseja especificar o artefato como entrada, adicione um código semelhante ao seguinte:

   ```
   action-name:
     Inputs:
       Artifacts:
         - artifact-name
   ```

   Para obter mais exemplos, consulte [Exemplos de artefatos](workflows-working-artifacts-ex.md).

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

------

# Referência de arquivos em um artefato
<a name="workflows-working-artifacts-refer-files"></a>

Se você tem um arquivo que reside em um artefato e precisa se referir a esse arquivo em uma de suas ações de CodeCatalyst fluxo de trabalho da Amazon, conclua o procedimento a seguir.

**nota**  
Consulte também [Fazer referência a arquivos do repositório de origem](workflows-sources-reference-files.md).

------
#### [ Visual ]

*Não disponível. Escolha YAML para visualizar as instruções YAML.*

------
#### [ YAML ]

**Para referenciar arquivos em um artefato (editor YAML)**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. Selecione **YAML**.

1. Na ação em que você deseja fazer referência a um arquivo, adicione um código semelhante ao seguinte:

   ```
   Actions:
     My-action:
       Inputs:
         Sources:
           - WorkflowSource
         Artifacts:
           - artifact-name  
       Configuration:
         template: artifact-path/path/to/file.yml
   ```

   No código anterior, substitua:
   + *artifact-name*com o nome do artefato.
   + *artifact-path*com um valor da tabela a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codecatalyst/latest/userguide/workflows-working-artifacts-refer-files.html)

   Para obter exemplos, consulte [Exemplos de artefatos](workflows-working-artifacts-ex.md).
**nota**  
Você pode omitir *artifact-path* e apenas especificar o caminho do arquivo em relação ao diretório raiz do artefato se:  
A ação em que você está incluindo a referência inclui apenas um item abaixo de `Inputs` (por exemplo, inclui um artefato de entrada e nenhuma origem).
O arquivo que você deseja referenciar reside na entrada primária. A *entrada primária* é `WorkflowSource`, ou o primeiro artefato de entrada listado, se não houver `WorkflowSource`.

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

------

# Baixar artefatos
<a name="workflows-download-workflow-outputs"></a>

Você pode baixar e inspecionar artefatos gerados por suas ações de fluxo de trabalho do Amazon CodeCatalyst para fins de solução de problemas. Há dois tipos de artefato que podem ser baixados:
+ **Artefatos de origem**: um artefato que contém um snapshot do conteúdo do repositório de origem tal como ele existia quando a execução foi iniciada.
+ **Artefatos do fluxo de trabalho**: um artefato definido na propriedade `Outputs` do arquivo de configuração do fluxo de trabalho.

**Como baixar artefatos gerados pelo fluxo de trabalho**

1. Abra o console do CodeCatalyst em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Abaixo do nome do fluxo de trabalho, selecione **Execuções**.

1. Em **Histórico de execução**, na coluna **ID da execução**, escolha uma execução. Por exemplo, `Run-95a4d`.

1. Abaixo do nome da execução, selecione **Artefatos**.

1. Ao lado de um artefato, selecione **Baixar**. Um arquivo é baixado. Seu nome de arquivo consiste em sete caracteres aleatórios.

1. Extraia o arquivo usando um utilitário de extração de arquivos de sua escolha.