Vamos aprender a como criar uma Action no Github para deploy automático através de um sftp/ftp.
Sei que a sftp/ftp andam arcaíco e em desuso mas é uma boa forma de introduzir vocês que me acompanham nesse blog ao mundo das Actions do Github.
Para isso irei utilizar esse aplicativo https://github.com/marketplace/actions/sftp-deploy
Ele irá servir para enviar para um servidor de teste que criei arquivos utilizando uma chave privada para se autenticar no SFTP.
Mas então o que é Github Actions?
É uma plataforma que serve para automatizar o fluxo de trabalho dos desenvolvedores. "Workflow"
Esse será o início de uma série onde aprofundarei cada vez mais o conhecimento sobre actions até que possamos construir um exemplo de CI / CD Pipeline com actions do Github próximos tutoriais falaremos sobre teste automatizados com actions, validação de issues antes do merge, outros tipos de deploy e muito mais.
Vamos criar uma action onde o gatilho "trigger" será o push.
Imagino que já tenha um repositório no Github, caso não tenha crie-o pois as actions estarão atreladas a um repositório.
Feito isso vamos começar a criar a action para SFTP.
Com seu repositório aberto clica na aba Actions, como na imagem abaixo.
Vamos iniciar um workflow extremamente simples utilizando o Simple Workflow by Github.
Vamos começar a configurar o arquivo yaml.
Caso não saiba muito sobre yaml tem esse tutorial em inglês que achei muito útil.
https://learnxinyminutes.com/docs/yaml/
Tem também as referências das sintaxe do workflow do Github no próprio Github.
https://docs.github.com/pt/actions/using-workflows/workflow-syntax-for-github-actions
Abaixo segue o meu arquivo yaml:
name: SFTP-Deploy
on:
push:
branches: [ "main" ]
jobs:
release:
runs-on: ubuntu-latest
steps:
-
name: deploy
uses: wlixcc/SFTP-Deploy-Action@v1.2.4
with:
username: 'usuario'
server: 'ip_servidor'
port: 2222
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
sftp_only: true
local_pash: 'caminho_repositorio'
remote_path: '/caminho/servidor'
sftpArgs: '-o ConnectTimeout=20'
Vou explicar cada um dos argumentos que utilizei para que fique mais fácil e claro para replicar essa configuração e utilizá-la.
A action do github começando pelo SFTP foi a forma que encontrei para evoluir a cultura do fluxo de trabalho de um dos clientes da minha empresa, onde até o presente momento utiliza-se de SFTP e seus funcionários ainda acessam via SFTP, para poder forçar os funcionários a utilizarem o Github mitigando o acesso direto ao SFTP e o acesso sendo exclusivamente via Github Actions.
E quais a vantagens de fazer isso?
A grande vantagem é começar a criar uma cultura onde os funcionários passem a utilizar Git e Github, os códigos são matidos e versionados e abrem-se possibilidades futuras de Workflows mais robustos como CI/CD Pipeline.
Apesar de ser uma boa estratégia inicial, acabou que falhou pois o servidor é exclusivamente SFTP e quando é SFTP a action não consegue criar a pasta sozinha e não consegue suprir 100% a necessidade, por isso irei criar outro artigo explicando como fazer deploy de arquivos numa Google Cloud VM, se for FTP funciona muito bem.
Espero que esse artigo possa lhe ajudar.
Se puder compartilhe com seus amigos, vai ser de grande valia.
Até o próximo artigo!
Seja o primeiro a comentar o nosso artigo!