Skip to main content

Esta versão do GitHub Enterprise Server será descontinuada em 2024-06-29. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise Server. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Criar e testar 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.

Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.

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 arquivos de cache e carregar artefatos de uma execução do fluxo de trabalho.

Executores hospedados em GitHub têm um cache de ferramentas 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, confira "Usar executores hospedados no 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 o Manual do Usuário do Gradle.

Usar executores auto-hospedados no GitHub Enterprise Server

Ao usar ações de instalação (como actions/setup-LANGUAGE) no GitHub Enterprise Server com executores auto-hospedados, talvez seja necessário configurar o cache de ferramentas nos executores que não têm acesso à Internet. Para obter mais informações, confira "Configurar o cache de ferramentas em executores auto-hospedados sem acesso à internet".

Usando um fluxo de trabalho inicial em Gradle

Para experimentar uma introdução rápida, adicione um fluxo de trabalho inicial ao diretório .github/workflows do repositório.

O GitHub fornece um fluxo de trabalho inicial para o Gradle que deve funcionar para a maioria dos projetos Java com Gradle. As seções subsequentes deste guia fornecem exemplos de como você pode personalizar esse fluxo de trabalho inicial.

  1. No sua instância do GitHub Enterprise Server, navegue até a página principal do repositório.

  2. No nome do repositório, clique em Ações.

    Captura de tela das guias do repositório "github/docs". A guia "Ações" está realçada com um contorno laranja.

  3. Se você já tiver um fluxo de trabalho no repositório, clique em Novo fluxo de trabalho.

  4. A página "Escolher um fluxo de trabalho" mostra uma seleção de fluxos de trabalho iniciais recomendados. Pesquise por "Java com Gradle".

  5. No fluxo de trabalho "Java com Gradle", clique em Configurar.

    Se não encontrar o fluxo de trabalho inicial "Java com Gradle", copie o seguinte código de fluxo de trabalho para um novo arquivo chamado gradle.yml no diretório .github/workflows do seu repositório.

    YAML
    name: Java CI with Gradle
    
    on:
      push:
        branches: [ "main" ]
      pull_request:
        branches: [ "main" ]
    
    permissions:
      contents: read
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v4
        - name: Set up JDK 17
          uses: actions/setup-java@v4
          with:
            java-version: '17'
            distribution: 'temurin'
    
        - name: Setup Gradle
          uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
    
        - name: Build with Gradle
          run: ./gradlew build
    

Este fluxo de trabalho realiza as etapas a seguir:

  1. Verifica uma cópia do repositório do projeto.

  2. Define o Java JDK.

  3. Configura o ambiente Gradle. A ação gradle/actions/setup-gradle trata do estado de cache entre as execuções de fluxos de trabalho e fornece um resumo com detalhes de todas as execuções do Gradle.

  4. A etapa “Compilar com o Gradle” executa a tarefa build ao usar o Wrapper do Gradle.

  5. Edite o fluxo de trabalho conforme necessário. Por exemplo, altere a versão do Java.

    Observações:

    • Esse fluxo de trabalho inicial usa ações que não são certificadas pelo GitHub. Elas são fornecidas por terceiros e regidas por termos de serviço, política de privacidade e documentação de suporte separados.
    • Caso use ações de terceiros, você deverá usar uma versão especificada por um SHA de commit. Se a ação for revisada e você quiser usar a versão mais recente, será necessário atualizar o SHA. Você pode especificar uma versão fazendo referência a uma tag ou branch, mas a ação pode ser alterada sem aviso. Para obter mais informações, confira "Fortalecimento de segurança para o GitHub Actions".
  6. Clique em Confirmar alterações.

Como especificar a versão e a arquitetura da JVM

O 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 ou 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 11 do JDK fornecida pelo Adoptium para a plataforma x64, você poderá usar a ação setup-java e configurar os parâmetros java-version, distribution e architecture para '11', 'temurin' e x64.

YAML
steps:
  - uses: actions/checkout@v4
  - name: Set up JDK 11 for x64
    uses: actions/setup-java@v4
    with:
      java-version: '11'
      distribution: 'temurin'
      architecture: x64

Para obter mais informações, confira 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 trabalho inicial executará a tarefa build 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, o ideal é executar a tarefa package configurada no arquivo ci.gradle.

YAML
steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-java@v4
    with:
      java-version: '17'
      distribution: 'temurin'

  - name: Setup Gradle
    uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

  - name: Build with Gradle
    run: ./gradlew -b ci.gradle package

Memorizar dependências

Suas dependências de build podem ser armazenadas em cache para acelerar as execuções do fluxo de trabalho. Após uma execução bem-sucedida, gradle/actions/setup-gradle armazena em cache partes importantes do diretório base do usuário do Gradle. Em trabalhos futuros, o cache será restaurado para que os scripts de compilação não precisem ser recalculados e as dependências não precisem ser baixadas a partir de repositórios remotos de pacotes.

O cache é habilitado por padrão quando a ação gradle/actions/setup-gradle é usada. Para obter mais informações, consulte gradle/actions/setup-gradle.

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, confira "Armazenar dados do fluxo de trabalho como artefatos".

Em geral, o Gradle criará arquivos de saída como JARs, EARs ou WARs no diretório build/libs. Você pode carregar o conteúdo desse diretório usando a ação upload-artifact.

YAML
steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-java@v4
    with:
      java-version: '17'
      distribution: 'temurin'

  - name: Setup Gradle
    uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

  - name: Build with Gradle
    run: ./gradlew build

  - name: Upload build artifacts
    uses: actions/upload-artifact@v3
    with:
      name: Package
      path: build/libs