GitlabHQ + Gitlab-CI: customizando a lógica de construção

4

Estamos usando o GitlabHQ e o Gitlab-CI em nossa infraestrutura. Tendo esse conjunto de integração contínua, estamos dispostos a personalizar a lógica de construção no IC.

Agora mesmo no novo commit, o GitlabHQ dispara um gancho para o CI, que diz ao gitlab-ci-runner para executar uma compilação ou um teste.

O executor tem uma lógica codificada (pelo menos não personalizável na interface do usuário da web) e, antes de executar scripts definidos pelo usuário, emite esses comandos:

cd $HOMEDIR/gitlab-ci-runner/tmp/builds && git clone git@$GITLABSERVER:root/test1.git project-1 && cd project-1 && git checkout $COMMIT

cd $HOMEDIR/gitlab-ci-runner/tmp/builds/project-1 && git reset --hard && git checkout $COMMIT

e, em seguida, scripts definidos pelo usuário vão

O que eu quero:

  • personalize as opções passadas para o git
  • executa alguns scripts definidos pelo usuário antes dos comandos acima serem emitidos (no meu caso, quero iniciar uma máquina virtual mantida no executor para obter um env limpo para testes)

As perguntas são: Alguém atingiu a situação semelhante? Existe uma maneira legal de solucionar a falta de opções necessárias?

Agora estou usando um hack muito sujo: substitui o git binary pelo bash script chamado 'git', que captura as opções passadas para o git e o executa dentro da máquina virtual, mas isso não parece ser uma boa maneira da IMO.

    
por Valentine Gostev 06.11.2013 / 06:48

1 resposta

1

Não tenho certeza se é o que você quer, mas você pode desativar o código do git completamente definindo GIT_STRATEGY como none:

variables:
  GIT_STRATEGY: none

link

Para executar comandos antes da execução do trabalho, você pode usar a diretiva "before_script"

before_script is used to define the command that should be run before all jobs, including deploy jobs, but after the restoration of artifacts. This can be an array or a multi-line string.

link

    
por 28.06.2018 / 10:44