Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Criar e estar o Java com o Gradle

Você pode criar um fluxo de trabalho de integração contínua (CI) no GitHub Actions para criar e testar o seu projeto Java com o Gradle.

GitHub Actions está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub One. GitHub Actions não está disponível para repositórios privados pertencentes a contas usando os planos de legado por repositório. Para obter mais informações, consulte "produtos de GitHub

Neste artigo

Esse documento ajudou você?

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.

Introdução

Este guia mostra como criar um fluxo de trabalho que realiza a integração contínua (CI) para o seu projeto Java usando o sistema de criação do Gradle. O fluxo de trabalho que você criar permitirá que você veja quando commits em um pull request gerarão falhas de criação ou de teste em comparação com o seu branch-padrão. Essa abordagem pode ajudar a garantir que seu código seja sempre saudável. Você pode estender seu fluxo de trabalho de CI para memorizar arquivos e fazer o upload de artefatos a partir da execução de um fluxo de trabalho.

Os executores hospedados em GitHub têm uma cache de ferramentas com com software pré-instalado, que inclui kits de desenvolvimento Java (JDKs) e Gradle. Para obter uma lista de software e as versões pré-instaladas para JDK e Gradle, consulte "Especificações para executores hospedados em GitHub".

Pré-requisitos

Você deve estar familiarizado com o YAML e a sintaxe do GitHub Actions. Para obter mais informações, consulte:

Recomendamos que você tenha um entendimento básico da estrutura do Java e do Gradle. Para obter mais informações, consulte "Introdução" na documentação do Gradle.

Introdução com um modelo de fluxo de trabalho do Gradle

GitHub fornece um modelo de fluxo de trabalho Gradle que funcionará para a maioria dos projetos Java baseados no Gradle. Para obter mais informações, consulte o modelo do fluxo de trabalho do Gradle.

Para começar rapidamente, você pode escolher o modelo do Gradle pré-configurado ao criar um novo fluxo de trabalho. Para obter mais informações, consulte o início rápido "GitHub Actions".

Você também pode adicionar este fluxo de trabalho manualmente, criando um novo arquivo no diretório .github/workflows do seu repositório.

nome: Java CI

em: [push]

trabalhos:
  criar:
    runs-on: ubuntu-latest

    etapas:
      - usa: actions/checkout@v2
      - nome: Set up JDK 1.8
        usa: actions/setup-java@v1
        com:
          java-version: 1.8
      - nome: Criar com Gradle
        executar: ./gradlew build

Este fluxo de trabalho executa os seguintes passos:

  1. O checkout faz o download de uma cópia do seu repositório no executor.
  2. A etapa setup-java configura o Java 1.8 JDK.
  3. A etapa "Criar com Gradle" executa o script wrapper gradlew para garantir que o seu código seja criado, o seu teste seja aprovado e que seja possível criar um pacote.

Os modelos-padrão do fluxo de trabalho são excelentes pontos de partida ao criar seu fluxo de trabalho de compilação e teste, e você pode personalizar o modelo para atender às necessidades do seu projeto.

Executando em um sistema operacional diferente

O modelo de fluxo de trabalho inicial configura trabalhos para executar no Linux, usando o GitHub-executores hospedados ubuntu-latest. Você pode alterar a tecla runs-on para executar seus trabalhos em um sistema operacional diferente. Por exemplo, você pode usar os GitHub-executores Windows hospedados.

runs-on: windows-latest

Ou, você pode executar nos GitHub-executores do macOS.

runs-on: macos-latest

Você também pode executar tarefas em contêineres Docker, ou você pode fornecer um executor auto-hospedado que funciona na sua própria infraestrutura. Para obter mais informações, consulte "Workflow syntax for GitHub Actions."

Especificando a versão e a arquitetura da JVM

O modelo de fluxo de trabalho inicial configura o PATH para conter OpenJDK 8 para a plataforma x64. Se você quiser usar uma versão diferente do Java, ou escolher uma arquitetura diferente (x64 or x86), você pode usar a ação setup-java para escolher um ambiente de execução Java diferente.

Por exemplo, para usar a versão 9.0. do JDK para a plataforma x64, você pode usar os parâmetros setup-java e configurar os de java-version e architecture para '9.0.4' e x64.

steps:
  - uses: actions/checkout@v2
  - name: Set up JDK 9.0.4 for x64
    uses: actions/setup-java@v1
    with:
      java-version: '9.0.4'
      architecture: x64

Para obter mais informações, consulte a ação setup-java.

Criar e testar seu código

Você pode usar os mesmos comandos usados localmente para criar e testar seu código.

O fluxo de tarbalho inicial executará a tarefa criar por padrão. Na configuração-padrão do Gradle, este comando irá baixar dependências, criar classes, executar testes e classes de pacotes em seu formato distribuível, como, por exemplo, um arquivo JAR.

Se você usa comandos diferentes para criar seu projeto ou se você desejar usar uma atividade diferente, você poderá especificá-los. Por exemplo, é possível que você deseje executar a tarefa pacote configurada no seu arquivo ci.gradle.

etapas:
  - usa: actions/checkout@v2
  - ususaes: actions/setup-java@v1
    com:
      java-version: 1.8
  - Nome: Executa a tarefa do pacote do Gradle
    executar: ./gradlew -b ci.gradle package

Memorizar dependências

Você pode armazenar as suas dependências para acelerar as execuções do seu fluxo de trabalho. Após a conclusão bem-sucedida, a sua cache do pacote do Gradle local será armazenada na infraestrutura do GitHub Actions. Para os fluxos de trabalho futuros, a cache será restaurada para que as dependências não precisem ser baixadas dos repositórios de pacotes remotos. Para obter mais informações, consulte "Memorizando dependências para acelerar os fluxos de trabalho" e a ação cache.

etapas:
  - usa: actions/checkout@v2
  - nome: Set up JDK 1.8
    usa: actions/setup-java@v1
    com:
      java-version: 1.8
  - nome: Cache Gradle packages
    usa: actions/cache@v2
    com:
      caminho: ~/.gradle/caches
      Chave: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
      restore-keys: ${{ runner.os }}-gradle
  - Nome: Criar com Gradle
    executar: ./gradlew build

Este fluxo de trabalho salvará o conteúdo da sua cache local do pacote Gradle, localizado no diretório .gradle/caches do diretório principal do executor. A chave da cache será o conteúdo em hash dos arquivos de criação do Gradle. Portanto, suas alterações irão invalidar a cache.

Empacotar dados do fluxo de trabalho como artefatos

Após a sua criação ter sido criada com sucesso e os seus testes aprovados, é possível que você deseje fazer o upload dos Java resultantes como um artefato de criação. Isso armazenará os pacotes criados como parte da execução do fluxo de trabalho e permitirá que você faça o download desses pacotes. Os artefatos podem ajudá-lo a testar e depurar os pull requests no seu ambiente local antes de serem mesclados. Para obter mais informações, consulte "Dados recorrentes do fluxo de trabalho que usam artefatos".

De modo geral, o Gradle cria arquivos de saída como JARs, EARs ou WARs no diretório build/libs. Você pode fazer upload do conteúdo desse diretório usando a ação upload-artefact.

steps:
  - uses: actions/checkout@v2
  - uses: actions/setup-java@v1
  - run: ./gradlew build
  - uses: actions/upload-artifact@v2
    with:
      name: Package
      path: build/libs

Esse documento ajudou você?

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.