Вы когда-нибудь задавались вопросом, как интегрировать Vercel или Heroku с GitHub Actions для приложений Next.js? Не ищите дальше, вы попали по адресу!
В этой статье мы рассмотрим, как создать базовый рабочий процесс GitHub Actions для приложений Next.js, и как интегрировать Vercel и Heroku в GitHub Actions, чтобы развертывание на Vercel и Heroku стало возможным через GitHub Actions. Обратите внимание, что в этом руководстве мы будем использовать приложение Next.js.
Настройка
В этом учебнике мы будем использовать следующее приложение: https://github.com/ShehanAT/NextJs-GitHub-Actions-CI-Testing-App.
Вы можете начать с форка этого приложения на GitHub, а затем клонировать его локально.
Просто импортируйте папку проекта в свое рабочее пространство и выполните команду npm install
, как только вы cd
войдете в него.
Вы можете запустить предоставленные модульные тесты, выполнив команду npm test
, так что попробуйте, если хотите.
Теперь, когда мы закончили с настройкой проекта, давайте перейдем к основной теме.
Разработка
Этот учебник будет разделен на три основные темы:
- Как настроить базовый конвейер Next.js GitHub Actions
- Как интегрировать Vercel с GitHub Actions для приложений Next.js
- Как интегрировать
<add_interesting_feature_here>
с помощью GitHub Actions для приложений Next.js
Как настроить базовый конвейер GitHub Actions для Next.js
Настройка базового конвейера GitHub Actions довольно проста. Ниже приведены необходимые шаги:
- Перейдите на вкладку «Действия» на странице репозитория GitHub. Вот скриншот того, как она должна выглядеть:
Рисунок 1: Вкладка «Действия» GitHub
- Нажмите на ‘Новый рабочий процесс’
- Выберите ‘Node.js’ и нажмите кнопку ‘Настроить’.
- В следующем виде страницы редактирования единственное изменение, которое необходимо сделать, это установить первую команду
run
наnpm install
. Это гарантирует, что зависимости проекта будут собраны перед запуском приложения:
...
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm install
- run: npm run build --if-present
- run: npm test
...
- После внесения вышеуказанных изменений нажмите ‘Start Commit’ -> ‘Commit new file’.
- Вернитесь в IDE, откройте терминал,
cd
в корневой каталог проекта и выполните команду pull из удаленного репозитория:git pull origin master
. - Теперь вы увидите файл
.github/workflows/node.js.yml
, созданный в папке проекта. Для того чтобы запустить это действие GitHub Action, нам необходимо выполнить push в удаленный репозиторий. Для этого выполните следующие команды:
git add * // or `git add .github/workflows/node.js.yml` if your workflow file is not being added by Git
git commit -m 'added GitHub Actions workflow file'
git push origin master
- Перейдите на вкладку «Действия» репозитория GitHub. Подождите пару минут, пока рабочий процесс GitHub Actions завершится, и вы должны увидеть страницу успеха, как показано ниже:
Рисунок 2: Страница GitHub Actions, показывающая успешное завершение рабочего процесса
Рисунок 3: Детальная страница GitHub Actions, показывающая успешное завершение рабочего процесса
Вот так можно настроить базовый рабочий процесс GitHub Actions для приложений Next.js!
Как интегрировать Vercel с GitHub Actions для приложений Next.js
Существуют также способы интеграции Vercel с GitHub Actions. Вот шаги одного из таких способов:
- Сначала войдите в Vercel и откройте панель инструментов. Нажмите «Новый проект».
Рисунок 4: Страница приборной панели Vercel, выделяющая кнопку ‘Новый проект’
- На следующей странице выберите репозиторий GitHub, содержащий приложение вашего проекта. Если вы только клонировали приложение GitHub, о котором я говорил в разделе «Настройка», то просто создайте форк этого репозитория под своей учетной записью GitHub, клонируйте этот репозиторий и используйте его для целей этого шага.
- На следующем экране нажмите ‘Deploy’.
- Теперь, в окне терминала (или командной строки, если вы используете Windows), вам нужно установить пакет
vercel-cli
, выполнив следующую команду:npm install vercel -g
. - Затем выполните команду
vercel
, чтобы завершить интеграцию Vercel с только что созданным проектом Vercel. Ниже приведен снимок экрана этого процесса:
Рисунок 5: Процесс интеграции проекта Vercel CLI
После завершения этого последнего шага при каждом внесении изменений в удаленный репозиторий GitHub Vercel будет автоматически развертывать приложение.
Как интегрировать Heroku с помощью GitHub Actions для приложений Next.js
- Добавьте этот фрагмент кода в yaml-файл рабочего процесса
steps:
- uses: actions/checkout@v3
- name: Deploy to Heroku
uses: akhileshns/heroku-deploy@v3.7.8
with:
args: deploy --dir=build --prod
heroku_api_key: ${{ secrets.HEROKU_API_KEY }}
heroku_app_name: 'nextjs-github-actions-heroku'
heroku_email: '<enter_your_email>@gmail.com'
Чтобы общий файл рабочего процесса выглядел следующим образом:
name: Node.js CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v3
- name: Deploy to Heroku
uses: akhileshns/heroku-deploy@v3.7.8
with:
args: deploy --dir=build --prod
heroku_api_key: ${{ secrets.HEROKU_API_KEY }}
heroku_app_name: 'nextjs-github-actions-heroku'
heroku_email: '<enter_your_email>@gmail.com'
- Создайте новый проект Heroku на сайте Heroku. Следуйте приведенным шагам для создания проекта Heroku. Здесь показан снимок кнопки ‘Создать новое приложение’:
Рисунок 6: Приборная панель Heroku Кнопка создания нового проекта
- Скопируйте ключ API Heroku со страницы настроек аккаунта Heroku и задайте его в качестве переменной env в разделе Actions secrets на GitHub repo. Вы можете найти свой ключ API Heroku, перейдя на страницу настроек аккаунта и найдя раздел
API Key
. Затем на вкладкеSettings
репозитория GitHub вы найдете ссылкуSecrets
->Actions
. Перейдите на эту страницу и добавьте новую пару ключ-значение. Ключ должен быть'HEROKU_API_KEY'
, а значение — скопированное значение из Heroku. - Теперь вернитесь в терминал (или командную строку, если вы работаете в Windows). Если у вас не установлен Heroku CLI, вы можете установить его, следуя инструкциям, приведенным в этой ссылке: https://devcenter.heroku.com/articles/heroku-cli. Теперь введите
heroku login
в локальном Терминале и завершите процесс входа. - Теперь вам нужно добавить удаленный Git URL Heroku в ваш локальный репозиторий с помощью команды:
heroku git:remote -a name-of-your-heroku-app
Вы можете найти название вашего приложения Heroku в Heroku Dashboard
- Затем выполните следующие команды, чтобы отправить обновленный yaml-файл рабочего процесса в удаленный репозиторий GitHub
git add *
git commit -m 'Added akhileshns/heroku-deploy step to node.js.yml GA workflow'
git push origin master
- Наконец, перейдите на вкладку «Действия» на веб-странице вашего репозитория GitHub, и вы должны увидеть успешное завершение рабочего процесса и успешное развертывание на Heroku, как показано на следующих скриншотах:
Рисунок 7: Страница GitHub Actions, показывающая успешное завершение рабочего процесса
Рисунок 8: Приборная панель Heroku показывает успешное развертывание
Ну вот и все! Надеюсь, теперь вы сможете заставить эту функцию работать.
Заключение
Спасибо, что прочитали эту статью!
Если у вас возникли вопросы или проблемы, пожалуйста, оставьте комментарий в этой статье, и я отвечу вам, когда найду время.
Если вы нашли эту статью полезной, пожалуйста, поделитесь ею и не забудьте следить за мной в Twitter и GitHub, связаться со мной в LinkedIn и подписаться на мой канал YouTube.