Привет всем, Как разработчик, это всегда будет повторяющаяся задание для запуска Развертывание
Команда и затем 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.
Спасибо за ваше время.
Надеюсь, вам это нравится, если да хлопать & Поделиться.