From 22917dfe229f2f07585f21e6a6c0790c8c62f074 Mon Sep 17 00:00:00 2001 From: Diego Giovane Pasqualin <dpasqualin@c3sl.ufpr.br> Date: Tue, 12 Jan 2016 12:08:55 -0200 Subject: [PATCH] Cache --- .gitlab-ci.yml | 62 ++++++++++++-------------------------------------- 1 file changed, 15 insertions(+), 47 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index af96d41..b46567e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,56 +1,24 @@ +# Usando cache + before_script: - apt-get update && apt-get install -y build-essential -# Você pode definir estágios de integração contínua. Estes três estágios -# abaixo são os mais comuns. A ordem em que aparecem define a ordem de -# execução. De forma que os 'jobs' marcados como estágio 'build' executarão -# antes dos jobs 'test', que por sua vez executa antes dos jobs 'deploy'. -# O estágio seguinte só é executado se todos os jobs do estágio anterior -# completarem com sucesso. -# NOTA: ATUALMENTE NÃO EXISTE UMA FORMA DE PASSAR O RESULTADO DE UM ESTÁGIO -# PARA OUTRO, POR EXEMPLO O ARQUIVO COMPILADO EM 'BUILD' PARA SER TESTADO NO -# ESTÁGIO 'TEST'. EXISTE UMA SOLUÇÃO PREVISTA PARA O GITLAB 8.4. -stages: - - build - - test - - deploy - job1: - # Aqui aparece a definição sobre de qual estágio o job faz parte. Se - # nenhum for especificado, o gitlab assume que o estágio é 'test'. - # Repare que o valor foi atribuído na mesma linha, mas poderia ser na - # linha de baixo, como é feito na maioria dos casos. - stage: build - tags: - - debian script: - - echo "Estágio 'build'" - make - -job2: - # Esse job só será executado se todos os jobs do estágio 'build' - # terminarem com sucesso. - stage: test + artifacts: + paths: + - build/ + # Todos os arquivos não monitorados pelo git serão 'cacheados', + # significando que serão copiados e (potencialmente) reutilizados em + # builds futuras. + cache: + untracked: true + # Também é possível utilizar o campo 'paths', como em 'artifacts'. + # Muito útil para fazer cache do vendor/ em aplicações rails ou + # node_modules/ em aplicações node. + # paths: + # - node_modules/ tags: - debian - script: - - echo "Estágio 'test'" - # Como dito, ainda não é possível passar arquivos de um estágio para - # outro, por isso o comando abaixo vai falhar. - - ./run-test.sh -job3: - # Os jobs marcados como 'deploy' são os últimos a serem executados. - stage: deploy - tags: - - debian - script: - - echo "Estágio 'deploy'" - # Aqui você pode fazer upload de algo para um servidor. Para isso - # (atualmente) você precisa gerar um par de chaves e colocar a chave - # privada em alguma variável que é passada para os scripts - # abaixo como variável de ambiente. Defina essa variável em - # <projeto>/Settings/Variables. O script deve então salvar essa - # variável (chave privada) em um arquivo para poder utilizá-la com - # ssh. - #- script_que_vai_copiar_para_servidor.sh -- GitLab