GitHub Actions FTP развертывание создает только папки, но не загружает файлы на cPanel.

Вопрос или проблема

Я использую GitHub Actions для развертывания моего проекта на cPanel через FTP. Однако, действие только создает каталоги, но не загружает файлы. Вот конфигурация YAML, которую я использую:

имя: Развертывание cpanel

on:
  push:
    branches: [ main ]
jobs:
  deployment:
    name: Запустить npm на Ubuntu
    runs-on: ubuntu-latest
    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2'
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v3
        with:
          node-version: '18'
      - name: Копировать .env
        run: cp .env.example .env
      - name: Установить зависимости composer
        run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
      - name: Установить зависимости node
        run: npm ci
      - name: Настроить NodeJs
        run: |
          npm run build
      - name: Развертывание проекта
        uses: SamKirkland/[email protected]
        with:
          сервер: ${{ secrets.FTP_SERVER }}
          имя пользователя: ${{ secrets.FTP_USERNAME }}
          пароль: ${{ secrets.FTP_PASSWORD }}
          исключить: |
            **/.git*
            **/.git*/**
            node_modules/
            node_modules/**/*

Кто-нибудь сталкивался с этой проблемой? Как я могу убедиться, что файлы правильно загружаются?

Я развертываю проект Laravel с Vue.js, используя Inertia.js на cPanel через FTP с помощью GitHub Actions. Я использовал SamKirkland/FTP-Deploy-Action в своем рабочем процессе. Я ожидал, что все файлы, включая бэкенд Laravel и фронтенд Vue.js (обрабатываемый Inertia), будут загружены на сервер. Однако на сервере создается только структура папок, и никакие фактические исходные файлы не передаются. Я подтвердил, что локальный проект содержит все необходимые файлы перед запуском действия.

.

Ответ или решение

Проблема загрузки файлов на cPanel с использованием GitHub Actions и FTP

В вашем случае проблема заключается в том, что при развертывании вашего проекта через GitHub Actions в cPanel по протоколу FTP создаются только директории, но файлы, как ожидается, не загружаются. Давайте рассмотрим возможные причины и решения данной ситуации.

1. Анализ конфигурации

Первым делом, обратим внимание на ваш конфигурационный файл .yml. Вот ключевые моменты, которые следует проверить:

  • Шаги сборки и установки зависимостей: У вас правильно настроены шаги для установки PHP и Node.js, а также выполнение команд composer install и npm ci, что является хорошей практикой. Убедитесь, что все необходимые файлы действительно находятся в вашем проекте после выполнения этих шагов. Рекомендуется добавить шаг для вывода содержимого директории перед загрузкой файлов, чтобы удостовериться, что все нужные файлы существуют:

    - name: Проверка содержимого
    run: ls -R
  • Использование SamKirkland/FTP-Deploy-Action: Убедитесь, что эта версия экшена поддерживает вашу версию FTP-сервера и что у него нет известных проблем. Иногда обновления пакета могут исправлять баги.

2. Возможные причины

a. Неправильный путь загрузки

Если в вашем конфигурационном файле сам FTP-экшен не указывает путь загрузки, файлы могут просто не загружаться в ожидаемую директорию. Попробуйте явно указать путь выгрузки, добавив параметр path, указывающий, куда должны загружаться файлы:

- name: Deploying project
  uses: SamKirkland/FTP-Deploy-Action@v4
  with:
    server: ${{ secrets.FTP_SERVER }}
    username: ${{ secrets.FTP_USERNAME }}
    password: ${{ secrets.FTP_PASSWORD }}
    local-dir: ./path/to/your/build # Укажите правильный путь к директории
    exclude: |
      **/.git*
      **/.git*/**
      node_modules/
      node_modules/**/*

b. Игнорируемые файлы

Параметр exclude может быть причиной того, что некоторые файлы не загружаются. Убедитесь, что ваши ключевые файлы и каталоги не попадают под правила исключения. Кроме того, добавьте флаг verbose, чтобы получить больше информации о том, какие файлы включены или исключены:

with:
  ...
  verbose: true

3. Логи выполнения

Важным этапом при отладке является просмотр логов выполнения GitHub Actions. Перейдите в раздел "Actions" вашего репозитория и выберите выполненный процесс. Проверьте логи, чтобы понять, какие именно файлы пытался загрузить FTP-экшен, и не возникли ли при этом ошибки.

4. Дополнительные рекомендации

  • Права доступа: Убедитесь, что ваш FTP-пользователь имеет права доступа к записи в целевую директорию на cPanel.
  • Состоит ли проект в работе?: Убедитесь, что ваш проект не содержит незавершенных зависимостей, которые могут привести к отсутствию файлов во время сборки.
  • Проверка окружения: Попробуйте развернуть проект на локальной машине с использованием аналогичного подхода, чтобы подтвердить, что проблема не в самой сборке.

Заключение

Если после проверки всех указанных аспектов проблема не решится, возможно, стоит рассмотреть альтернативные методы развертывания или изучить другие действия для GitHub Actions, которые могут лучше соответствовать требованиям вашего проекта. Понимание логов и уточнение конфигурации действий — это ключ к успешному разрешению проблемы. Удачи в вашем развертывании!

Оцените материал
Добавить комментарий

Капча загружается...