Skip to content

Instantly share code, notes, and snippets.

@gdomiciano
Last active December 20, 2018 17:57
Show Gist options
  • Save gdomiciano/ece255cd5c53feaab64b41dc39656366 to your computer and use it in GitHub Desktop.
Save gdomiciano/ece255cd5c53feaab64b41dc39656366 to your computer and use it in GitHub Desktop.
GitLab CI configuration for Nuxt.js Deployment
# Passos que o seu Servidor de CI deverá seguir (test/build/deploy)
stages:
- deploy
# nome da tarefa do CI
deploy_prod:
# Passo a que esta tarefa pertence
stage: deploy
# definição de comandos necessários para essa tarefa
script:
# adiciona a aplicação do dokku e seus branches no arquivo de configuração do git
- git config --add remote.dokku.url dokku@$SERVER_IP:<nome-da-aplicação>
- git config --add remote.dokku.fetch +refs/heads/*:refs/remotes/dokku/*
# verifica se seu container atual possui ssh, caso contrário instala
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
# inicia o ssh-agent em background
- eval $(ssh-agent -s)
# cria a pasta de ssh
- mkdir -p ~/.ssh
# cria o arquivo de ssh config para ignorar o passo de verificar se é pra adicionar a atual ssh ao arquivo de known_hosts
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- chmod 400 ~/.ssh/
# Cria o arquivo de chave pública
- touch ~/.ssh/id_rsa.pub
# copia o conteudo da chave pública do gitlab CI para o arquivo criado
- echo "$PUBLIC_KEY" >> ~/.ssh/id_rsa.pub
# inclui a chave privada
- ssh-add <(echo "$PRIVATE_KEY")
# faz o push no droplet para que o deploy seja realmente iniciado
- git push dokku master
# define em quais branches essa tarefa deverá ser executada
only:
- master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment