SE VOCê CHEGOU ATÉ AQUI AQUI, Provivelmente Já Sabe O Que É O Github Действия (GHA) E COMO USA-LO, MAS CASO NãO SEJA ESSE O CASO, ПОСЫЙ КОЗАРА ЛЕНДО ESSA ridução ao github Действия Отказ
Objetivo
O objetivo deasse texto é mastrar de forma direta como coobr rubr arquivo yml para gerar o bundle dum projeto feito em eng one fazer antrega desse bundle через ftp em emma estrutura на месте não exposta para интернет.
Nesse Exemplo Teremos Dois Работа , EM QUE O PAMEIRO FARAU O BUNDVEL DO PROJETO, GERARáO O BUBLE E ARTORARAA OS ARTEFATOS PARA A PAUBLEARACAO NO FTP E O SEGUNDO VAI PEGAR ERA OREFATOS E enviá-los para
Поб que Sealar, как Atividades EM DOI Джобс?
Порка O PAMEIRO SERA EXPUTADO NA ESTRUTURA DO GITHUB (GH) E O SEGUNDO USARA UM Исполнитель Auto-Hospedado Que Será Instalado Na Sua Estrutura Headise.
Anclusão de UM Исполнитель Auto-Hospedado Não Faz Parte Desse Texto, Veja Акхи COMO Fazer A Instalação.
НОТА: SE VOCê NãO ESTA ACOSTUMADO COM ARQUIVOS YML, LEMBRE-SE QUE Identação é Geesse.
Работа 1: построить
Vamos Direto Para O Código:
build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: node-version: 10.16 - name: Install packages with NPM run: npm install - name: Build for production run: npm run build -- --prod - name: Upload artifacts to be used in next job if: success() uses: actions/upload-artifact@v1 with: name: deploy_dist path: dist
Vejamos o скрипт ацима. Logo no início temos o comando Работает: Ubuntu-Neighle
Onde é feita a Escolha выполняет исполнитель не качества о работа Será Executado, Nesse Caso Será última Versão do Ubuntu. Esse Executor É fornecido Pelo GHA E GOOTA Que O Room Será Executado Doctro da Estrutura Do Github.
EM SEGUIDA INICIA-SE O Passo Passo ( Шаги ) Должны сделать работу, Sendo O 1º O Checkout Do Projeto EO 2º A Checkout Do Nodejs, нет exemplo ainda escolho a versão do node que outs ser usada (10.16 nesse exemplo) Отказ
AO Executar O NPM установить
Нет 3º Passo, Temos a Instalação de Todas как Depêndencias делает Projeto.
Нет 4º Passo é Feito O Buildo Do Projeto. Aqui O Comando Poeed Comprer Variações de Acordo Com o Projeto, Poede usar o comando que astá acostumado a executar no seu ambiente de desenvolvimento querso quer o buildo do projeto.
Já O. 5º Passo FAZ o Загрузить Dos Artefatos, Linha Имя: Deploy_dist
Определить oome do artefato como deply_dist
E A A A Annha Путь: dist
Определить к качеству Caminho Dever Sercluído No Artefato, No Exemplo Usamos Dist
Porque No Meu Projeto é Oome Da Pasta Que Contém OS Arquivos Gerados No 4º Passo, нет Arquivo angular.json
ROCE CODE ECNTRAR O NOME QUE ESTA SENDO USADO NO SEU Projeto.
COM O PAMEIRO работа Вывод, Вамос Пара О Сегундо.
Работа 2: Развертывание FTP
Novamente Vamos Direto Para O Código:
ftp-deploy: needs: build runs-on: self-hosted steps: - name: Download artifacts created at previous job if: success() uses: actions/download-artifact@v1 with: name: deploy_dist path: dist - name: Deploy to FTP uses: SamKirkland/FTP-Deploy-Actions@master with: server: ${{ secrets.FTP_SERVER }} username: ${{ secrets.FTP_USER }} password: ${{ secrets.FTP_PASSWORD }} local-dir: dist/ server-dir: ${{ secrets.FTP_APP_DIR }} dangerous-clean-slate: true # optional
NESSA 2º Parte Do Script, Temos Algumas Previdades Logo No Incio. Logo na 2ª linha usamos o Потребности: построить
Para Dizer Ao. GHA QUE ESSE работа Precisa Esperar o работа построить
SER EXPUTADO COM SUCESSO PARA PODER IICIAR SUA EXKUçAO. Outra PersoniDade é o Comando Работает: самообслуживание
Que Diz Ao Ga Que Esse работа Deve Ser Executado POR UM Исполнитель Instalado Na Sua Estrutura Premise.
Já Em Relação Ao Passos Desse работа São Bem Smples. Нет 1º Fazemos o Скачать Do Aterefato de Nome deply_dist
E Colocamos o Conteúdo Desse Artefato Na Pasta Dist
Отказ Esses umes Precisam Obrigatoriamente Ser Idnynticos AOS NOMES ESCOLHIDOS NA ETAPA DE ROAD DO работа передний.
Нет 2º Passo, Usamos Action Samkirkland/FTP-развертывание - Действия @ Мастер
Para Fazer o Загрузить PARA O FTP. ОС Parâmetros сервер
, имя пользователя
, пароль
е Сервер-Дир
SãO PREENCHIDOS POR VARIáveis Armazenadas Нет секретов Repositório, WOTO PORE VER COMO FUNCIONA O Секреты Акхи Отказ
ГАЕТЕНТ: Tanto O Parâmetro локальный dir
Quanto O Parâmetro Сервер-Дир
Precisam Terminar Com A Barra /
Para Dizer Que Queremos Subir Tudo Que Está Na Pasta Dist
Отказ Assim Como Foi Usado Нет Exemplo: Dist/
Отказ
POR último, O Parâmetro Опасный чистый шифер: правда
, значимость que todo o conteúdo que usee no Сервер-Дир
Será Excluído Antes que o Загрузить DOS Arquivos inicie. Используйте Essa Opção Apenas SE для BeautaRio Para O Seu Caso.
Finalizando O Script
COM OS DOIS Работа Криадос, altima Parte éjuntar tudo em um único arquivo e incluir o nome e o evento que irá acionar a Execução desse script.
No Nosso Caso O Arquivo Final Fica Assim:
name: Deploy to FTP On-Premise - Project ABC on: push: branches: - main # the follow line allow this script to be started manually. workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: node-version: 10.16 - name: Install packages with NPM run: npm install - name: Build for production run: npm run build -- --prod - name: Upload artifacts to be used in next job if: success() uses: actions/upload-artifact@v1 with: name: deploy_dist path: dist ftp-deploy: needs: build runs-on: self-hosted steps: - name: Download artifacts created at previous job if: success() uses: actions/download-artifact@v1 with: name: deploy_dist path: dist - name: Deploy to FTP uses: SamKirkland/FTP-Deploy-Actions@master with: server: ${{ secrets.FTP_SERVER }} username: ${{ secrets.FTP_USER }} password: ${{ secrets.FTP_PASSWORD }} local-dir: dist/ server-dir: ${{ secrets.FTP_APP_DIR }} dangerous-clean-slate: true # optional
Вывод
Configurar EMS Script de Deploy Automático de umber Projeto Pode Ser Mais STOR STOW CAE PARECE, PELO MENOS EM ALGUNS CASOS.
O GHA Poore Ser Usado Para Executar Diversas Autrass Tarefas, Como Execução de Testes No Projeto, O Envio de Mensagens Pelo Telegram E Muitas Erras Tarefas.
Fique à Vontade Para Usar Essar Script COMO PONTO DE PARTIDA PARA CRIACHãO DEM Workflow Mais Adeqadado Para Realidade.
Espero Ter Te Ajudado de Alguma Forma Com Esse Script.
Оригинал: «https://dev.to/felipemsfg/github-actions-deploy-angular-app-por-ftp-em-uma-estrutura-on-premise-po2»