Eu tenho um 11 projeto Gradle Java que reside em gitlab. Eu queria apresentar gitlab-ci.yml
para forçar gitlab para construir um projeto e executar testes em cada impulso para uma filial remota.
Como deveria parecer?
Tenho certeza de que uma pergunta semelhante já foi feita, mas eu não poderia encontrá-lo, então eu aprecio sua ajuda.
Gitlab fornece uma descrição oficial do .gitlab-ci.yml
arquivo, mas que poderia ser um pouco demorado para começar fora do portão. Para um projeto básico, você pode usar o seguinte como uma base:
image: gradle:jdk11
before_script:
- export GRADLE_USER_HOME=`pwd`/.gradle
cache:
paths:
- .gradle/wrapper
- .gradle/caches
package:
stage: build
script:
- ./gradlew assemble
test:
stage: test
script:
- ./gradlew check
Note que a image
tag está definida para maven:latest
, em muitos exemplos, mas para gitlab para compilar o projeto usando JDK 11, o image
tag deve ser definido como maven:3-jdk-11
. A GRADLE_USER_HOME
está definido para o .gradle
do diretório atual que o script é lido a partir de garantir que o ambiente Gradle está configurado corretamente antes de iniciar a construção.
A cache
seção define os caminhos que gitlab CI deve procurar artefatos e dependências em cache (que, para uma compilação Gradle, é .gradle/wrapper
e .gradle/cache
). Constrói pode levar um longo tempo para executar, como cada construção requer o download todas as dependências cada vez que a construção é executada; de acelerar isso, o cache pode ser incluído para remover a necessidade de repetidamente dependências de download. As especificidades de caching podem variar para o seu projeto. Veja o oficial cache
de documentação para obter mais informações.
O assemble
e check
passos simplesmente executar gradle assemble
e gradle check
, respectivamente. Enquanto gradle test
seria suficiente em muitos casos (em oposição a gradle check
, o check
passo inclui test
enquanto incluindo também outras etapas de verificação. Para mais informações sobre a diferença entre check
e test
, ver diferença entre Gradle teste e verificação .
Para mais informações, consulte o seguinte:
- Como habilitar o cache artefato Maven para gitlab ci corredor?
- dependências de cache em gitlab CI / CD
- Gitlab CI / CD Exemplos
- Gitlab CI cache de dependência Gradle
- Uma amostra de .gitlab-ci.yml para um projeto Gradle
- gitlab 8.2.1, Como usar o cache em .gitlab-ci.yml
- Lista de imagens Gradle suportados
Equivalente exemplo Maven:
image: maven:3-jdk-11
variables:
MAVEN_CLI_OPTS: "--batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
cache:
paths:
- .m2/repository/
- target/
package:
stage: build
script:
- mvn $MAVEN_CLI_OPTS package
test:
stage: test
script:
- mvn $MAVEN_CLI_OPTS test
A --batch-mode
bandeira é executado Maven com valores padrão e não solicita ao usuário selecionar qualquer padrão. A -Dmaven.repo.local=.m2/repository
define o repositório local para o local no servidor de compilação (gitlab). que desempenha para a capacidade de armazenamento em cache de gitlab. Constrói pode levar um longo tempo para executar, como cada construção requer o download todas as dependências cada vez que a construção é executada; de acelerar isso, o cache pode ser incluído para remover a necessidade de repetidamente dependências de download. As especificidades de caching podem variar para o seu projeto. Veja o oficial cache
de documentação para obter mais informações.
A package
e test
passos simplesmente executar mvn package
e mvn test
, respectivamente (com as opções Maven descrito acima).