Use ações do GitHub para implantação de servidor remoto do projeto

Como o código-fonte do projeto está hospedado no github, a implantação é feita em um servidor remoto e implantada usando nginx.
No processo de implantação atual, quando uma atualização for necessária, alterne para a ramificação principal localmente, execute a operação de construção, obtenha o diretório dist criado, carregue-o em um diretório nginx do serviço remoto e reinicie o serviço nginx. Com base no exposto acima, use o GitHub Actions for CI/CD process.

Quando o código é enviado para o branch master, ou quando o master mescla pr separadamente, o pipeline é executado. O
arquivo do pipeline é armazenado na .github/workflows/deploy.yml
versão baseada em node16.x, instala o pnpm globalmente, instala as dependências do projeto e constrói.
Após a conclusão da compilação, use Actions ssh-scp-ssh-pipelineshttps://github.com/marketplace/actions/ssh-scp-ssh-pipelines

Três chaves precisam ser configuradas para usar este plugue
DC_HOST: host remoto ip
DC_PASS: senha
DC_USER: nome de usuário

insira a descrição da imagem aqui

insira a descrição da imagem aqui

# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: ssh deploy 

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js Build
      uses: actions/setup-node@v3
      with:
        node-version: 16.16.0
        cache: 'npm'
    - run: npm i -g pnpm
    - run: pnpm install
    - run: pnpm run build
    - run: ls -l
    - name: scp ssh pipelines
      uses: cross-the-world/ssh-scp-ssh-pipelines@latest
      env:
        LASTSSH: "Doing something after copying"
      with:
        host: ${
    
    {
    
     secrets.DC_HOST }}
        user: ${
    
    {
    
     secrets.DC_USER }}
        pass: ${
    
    {
    
     secrets.DC_PASS }}
        scp: |
          ./dist/* => /usr/share/nginx/visual-editor/dist
        last_ssh: |
          echo $LASTSSH 
          nginx -t
          nginx -s reload

O que precisa ser feito, configure as três chaves, verifique o caminho e reinicie o comando. depuração.

Diagrama esquemático da conclusão em execução
insira a descrição da imagem aqui

Supongo que te gusta

Origin blog.csdn.net/github_35631540/article/details/131576686
Recomendado
Clasificación