manuales_desarrollo

Manuales de desarrollo de YeboYebo


Project maintained by yeboyebo Hosted on GitHub Pages — Theme by mattgraham

Quimera / Despliegue automático GitHub Workflow

Para el despliegue automático necesitamos:

En la raiz de la carpeta de quimera-mono en

    .github/workflows

Encontramos los ficheros .yml

Estructura fichero workflow

Existira un fichero .yml por cada web de quimera con el siguiente formato:

name: Deploy_Cabrera

# Aqui indicaremos el nombre de la rama sobre la cual al hacer push se iniciara el proceso de despliegue automatico
on:
  push:
    branches:
      - deploy_cabrera  

jobs:
  Docker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          repository: 'yeboyebo/quimera-mono'
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      
      # - name: Generate dist
      #  run: mkdir dist && mkdir apps/tienda-nativa-vbarba/dist/ && chmod 777 -R dist/ && chmod 777 -R apps/tienda-nativa-vbarba/dist/

      - name: Install pnpm
        run: npm install -g pnpm

      - name: Install Dependecies
        run: pnpm install 
      
      - name: Build
        run: pnpm build tienda-nativa-vbarba
              
      - name: Copy Configuration File
        run: cp docker-compose.yml dist/

      - name: Login to DockerHub Registry
        run: echo $ | docker login -u $ --password-stdin
        
      - name: Build Docker image (test)
        run: docker build . --file Dockerfile --tag $/tienda-nativa-vbarba
        
      - name: Push to Docker Hub
        run: docker push $/tienda-nativa-vbarba
      
      - name: create ENV
        run: export CONTAINER_NAME=tienda-nativa-vbarba

      - name: Make envfile
        uses: SpicyPizza/create-envfile@v2.0
        with:
          envkey_LETSENCRYPT_HOST: $
          envkey_LETSENCRYPT_EMAIL: $
          envkey_VIRTUAL_HOST: $
          envkey_SOME_API_KEY: $
          envkey_SECRET_KEY: $
          envkey_DOCKERHUB_USERNAME: $
          envkey_DOCKERHUB_IMAGE: $/tienda-nativa-vbarba
          envkey_CONTAINER_NAME: "tienda-nativa-vbarba"
          file_name: .env
          fail_on_empty: false
          sort_keys: false

      - name: copy .env file via ssh password
        uses: appleboy/scp-action@v0.1.4
        with:
          host: $
          username: $
          key: $
          port: $
          source: ".env"
          target: /home/$/tienda-nativa-vbarba

      - name: copy .env file via ssh password to stacks
        uses: appleboy/scp-action@v0.1.4
        with:
          host: $
          username: $
          key: $
          port: $
          source: ".env"
          target: /home/$/tienda-nativa-vbarba/stacks

      - name: Docker Remote Deployment
        uses: wshihadeh/docker-deployment-action@master
        with:
          remote_docker_host: $@$
          ssh_private_key: $
          ssh_public_key: $
          docker_registry_username: $
          docker_registry_password: $
          pull_images_first: true
          deployment_mode: docker-compose
          copy_stack_file: true
          deploy_path: /home/$/tienda-nativa-vbarba
          stack_file_name: docker-compose.yml
          keep_files: 3
          pre_deployment_command_args: config 
          args: -p tienda-nativa-vbarba --env-file /home/$/tienda-nativa-vbarba/.env up -d --build 

Secretos GitHub

En el fichero .yml del ciente encontramos varias variables $

Hay un secreto por cada dato sensible del cliente tendremos que declarar estos en la web de github

https://github.com/yeboyebo/quimera-mono/settings/secrets/actions

Seleccionando New repository secret

Alt text

Necesitamos los siguientes datos del cliente:

Logs despliegue

Si queremos saber como ha ido el despliegue automatico podemos acudir a github

https://github.com/yeboyebo/quimera-mono/actions

Donde podremos consultar logs sobre el estado de la instalacion y comprobar que todo se haya realizado correctamente:

Alt text