Skip to content

Criação de ambiente de stage para sites no gitlab

Vamos criar um repositório espelho para executar o projeto quando estiver no branch “stage”

  1. Faça um Fork do repositório de origem para outro repositório que será o repositório de stage. Este fork deve ser ser colocado dentro do subgrupo "staging-pages".

  2. No repositório normal vá para “settings → Repositório → repositórios espelho”, aqui inserimos a URL do projeto espelho com o seu usuário (não será mostrado a ninguém) no seguinte formato: “ Https://my-user@gitlab.com/test/final-test.git”. Digite sua senha gitlab e clique em "repositórios de espelho".

  3. Agora na mesma sessão teremos uma lista de repositórios espelho, clique para atualizar manualmente o repositório que criamos para confirmar se está funcionando. Agora, todas as alterações nos arquivos que fizermos no repositório normal serão enviadas para o repositório espelho. (Quaisquer mudanças nos arquivos do espelho serão apagadas e / ou sobrescritas, então não faça commits aqui).

  4. Agora precisamos criar um arquivo .yml na raiz do projeto que terá as configurações de CI/CD para o repositório espelho executar. Criamos e configuramos um arquivo “.my-file.yml”, que será uma cópia do gitlab-ci.yml e o colocamos na raiz do repositório normal, editando apenas a restrição “only: stage” para que funcione apenas nessa branch. Agora é só esperar que ele atualize para o espelho. (o gitlab tem uma limitação que permite executá-lo apenas a cada 5 minutos).

  5. Vamos ao repositório espelho em “settings → CI / CD → pipelines gerais”. Vamos ao “arquivo de configuração CI / CD” e colocamos o nome do arquivo que configuramos, neste caso (.my-file.yml). Ok, agora neste repositório espelho o repositório irá executar CI/CD a partir do arquivo “. my-file.yml” e não do arquivo default. Assim o repositório de stage irá executar o arquivo "my-file.yml", configurado para dar deploy na branch stage, e o repositório normal continuará a executar o “.gitlab-ci.yml” configurado para dar deploy na branch master.

  6. Por fim, no repositório de stage, vá em "settings → general → Visibility, project features, permissions → Pages" e selecione "Only project Members" para tornar o acesso a página privada.

Se quiser saber porque esse método foi escolhido veja em studies/stage-env-for-static-pages.

Se quiser entender mais sobre repositórios espelhados veja em Repository mirroring.