Qual deve ser o arquivo .gitlab-ci.yml que ativa gitlab para construir um projeto e executar testes?

Pasha:

Eu tenho um 11 projeto Gradle Java que reside em gitlab. Eu queria apresentar gitlab-ci.ymlpara 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.

Justin Albano:

Gitlab fornece uma descrição oficial do .gitlab-ci.ymlarquivo, 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 imagetag está definida para maven:latest, em muitos exemplos, mas para gitlab para compilar o projeto usando JDK 11, o imagetag deve ser definido como maven:3-jdk-11. A GRADLE_USER_HOMEestá definido para o .gradledo 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 cacheseção define os caminhos que gitlab CI deve procurar artefatos e dependências em cache (que, para uma compilação Gradle, é .gradle/wrappere .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 cachede documentação para obter mais informações.

O assemblee checkpassos simplesmente executar gradle assemblee gradle check, respectivamente. Enquanto gradle testseria suficiente em muitos casos (em oposição a gradle check, o checkpasso inclui testenquanto incluindo também outras etapas de verificação. Para mais informações sobre a diferença entre checke test, ver diferença entre Gradle teste e verificação .

Para mais informações, consulte o seguinte:


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-modebandeira é executado Maven com valores padrão e não solicita ao usuário selecionar qualquer padrão. A -Dmaven.repo.local=.m2/repositorydefine 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 cachede documentação para obter mais informações.

A packagee testpassos simplesmente executar mvn packagee mvn test, respectivamente (com as opções Maven descrito acima).

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=120172&siteId=1
Recomendado
Clasificación