Рубрики
Без рубрики

Действия GitHub Развертывают угловые на сервер

Здравствуйте, все, как разработчик, он всегда будет повторяющимся заданием для запуска команды развертывания, а затем zip файлы и подключиться к SFTP> Загрузить файл> Расстегнув. Иногда нам трудно сделать это ….

Автор оригинала: Karthik.

Привет всем, Как разработчик, это всегда будет повторяющаяся задание для запуска Развертывание Команда и затем zip файлы и подключайтесь к SFTP> Загрузить файл> Расстегните. Некоторые времена нам трудно сделать это. И некоторые случаи будут медленно, могут быть различными причинами, такие как конфигурации ПК, скорость интернета и другие

Так что недавно GitHub запустил Действия GitHub что поможет нам автоматизировать задачи

Так что теперь мы увидим, как построить угловой проект, затем разверните его на сервер, используя SSH

Давайте начнем

Давайте подготовим наш проект в Github и готов к развертыванию

Настройте рабочий процесс GitHub

После того, как наш проект будет готов, нам нужно настроить рабочий процесс GitHub

Чтобы настроить создать папку с именем ..gitub внутри этого Рабочие процессы Теперь внутри этого каталога рабочих процессов мы собираемся создать новый файл, который будет держать наш код YML для создания развертывания

Код YML.

Первая строка кода скажет имя рабочего процесса

name: CI

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
  push:
    branches: [ master ]

Код на> push> ветка Скажу о каких действиях вы хотите запустить работу для более подробной информации о том, что посетить эту ссылку

Синтаксис рабочего процесса

jobs:
  build:
    # using Ubuntu
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-node@v1 #this installs node and npm for us
      with:
        node-version: '12.x'

    - uses: actions/cache@v1 # this allows for re-using node_modules caching, making builds a bit faster.
      with:
        path: ~/.npm
        key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
        restore-keys: |
          ${{ runner.os }}-node-

    - name: NPM Install
      run: npm install
    - name: NPM Install Angular
      run: npm install -g @angular/cli > /dev/null
    - name: NPM build Angular Production
      run: ng build --prod
    - name: Delete Existing Files
      run : sudo sshpass -p ${{ secrets.SSH_PASS }} -v ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} 'rm -rf /home/runcloud/webapps/viuweb/*'

    - name: Compress and Copy New Files to server
      run : |
            cd dist/Viusasa/
            tar -czvf ../../viusasa.tar.gz ./
            cd ..
            cd ..
            sudo sshpass -p ${{ secrets.SSH_PASS }} scp -v -o StrictHostKeyChecking=no -r viusasa.tar.gz ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/home/runcloud/webapps/viuweb
    - name: Uncompress new Files
      run : sudo sshpass -p ${{ secrets.SSH_PASS }} -v ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} 'cd /home/runcloud/webapps/viuweb/ && tar -xzvf viusasa.tar.gz && rm viusasa.tar.gz'

Вышеуказанный код изначально мы создаем работу и сообщите ему, к какой операционной системе будет использоваться и какой ваш рабочий каталог, если ваш код проекта находится в Sub Directory

    # using Ubuntu
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./

Ее мы собираемся использовать Ubuntu и устанавливать мой рабочий каталог для ./ как его полностью необязательно, но я ухожу здесь, так как некоторые могут столкнуться с этим проблемой

Как только мы сделаем с этим, мы создаем шаги для выполнения одного за другим

- uses: actions/checkout@v1
- uses: actions/setup-node@v1 #this installs node and npm for us
      with:
        node-version: '12.x'

Таким образом, в этих первых двух шагах мы используем два действия, сначала используются в полном объеме, чтобы клонировать ваш проект. Второй используется для нас Узел js окружающая среда для нас в выделенном пространстве для нас

- uses: actions/cache@v1 # this allows for re-using node_modules caching, making builds a bit faster.
      with:
        path: ~/.npm
        key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
        restore-keys: |
          ${{ runner.os }}-node-

Мы устанавливаем кэш для наших узлов модулей, используя Действия/кеш @ v1 действие

- name: NPM Install
  run: npm install
- name: NPM Install Angular
  run: npm install -g @angular/cli > /dev/null
- name: NPM build Angular Production
  run: ng build --prod

В этой строки кода мы устанавливаем зависимости от наших Packages.json, а затем мы устанавливаем @ angular/cli Наконец мы бежим NG Build - Prod Чтобы построить наш код

- name: Delete Existing Files
  run : sudo sshpass -p ${{ secrets.SSH_PASS }} -v ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} 'rm -rf /home/example/host/html/*'

Затем мы удаляем любые файлы на сервере из нашего расположения хостинга, поэтому мы можем написать новые файлы

Здесь, если увидите, у нас есть некоторые переменные $ {{secrets.ssh pass}} Мы приезжаем с Github Secrets, вы можете добавить их в проект Настройки > секреты

- name: Compress and Copy New Files to server
  run : |
        cd dist/
        tar -czvf ../../app.tar.gz ./
        cd ..
        cd ..
        sudo sshpass -p ${{ secrets.SSH_PASS }} scp -v -o StrictHostKeyChecking=no -r app.tar.gz ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/home/example/host/html
- name: Uncompress new Files
  run : sudo sshpass -p ${{ secrets.SSH_PASS }} -v ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} 'cd /home/example/host/html && tar -xzvf app.tar.gz && rm app.tar.gz'

В приведенных выше линиях кода мы выполняем некоторые команды Linux, которые будут сжать наши файлы на app.tar.gz Затем подключитесь к серверу через SCP и загрузите его в наше местоположение хостинга, затем распаковывают файл и, наконец, Delte app.tar.gz.

Спасибо за ваше время.

Надеюсь, вам это нравится, если да хлопать & Поделиться.