В версії React Native 0.79 команда розробників значно покращила продуктивність, оновила інструменти та додала вдосконалення, що спрощують життя розробникам. Це оновлення особливо корисне для тих, хто працює з кросплатформенними додатками для iOS, Android та інших платформ, адже воно значно покращує продуктивність та оптимізує процес розробки.
Крок 1: Створення файлу .gitlab-ci.yml
Першим кроком у налаштуванні автоматизованого CI/CD pipeline для вашого Node.js проекту є створення файлу .gitlab-ci.yml
у корені проєкту. Цей файл описує структуру pipeline, визначаючи етапи для тестування та розгортання.
Крок 2: Додавання змінних середовища
Необхідно створити змінну у GitLab CI/CD з іменем ENV_FILE_CONTENT
та зберегти в ній вміст локального файлу .env
. Це дозволить автоматично відновити файл .env
під час виконання CI/CD pipeline.
Крок 3: Генерація SSH ключів
Для підключення до вашого сервера через GitLab Runner потрібно згенерувати нову пару SSH ключів. Це дозволить налаштувати безпечне з'єднання з сервером без необхідності вводити пароль кожного разу.
Крок 4: Додавання приватного SSH ключа до GitLab
Приватний SSH ключ необхідно додати до GitLab як змінну CI/CD. Це дозволяє автоматично підключатися до сервера під час виконання pipeline.
Крок 5: Налаштування доступу SSH до сервера
Щоб налаштувати сервер для прийому SSH з'єднань, потрібно скопіювати публічний SSH ключ до файлу authorized_keys
на сервері. Це дозволяє забезпечити безпечний доступ до сервера для автоматизованого розгортання.
Крок 6: Додавання відбитка SSH хоста
Для того, щоб уникнути запитів на підтвердження достовірності SSH хоста, необхідно додати відбиток хоста до GitLab як змінну SSH_KNOWN_HOSTS
.
Крок 7: Налаштування pipeline для CI/CD
Далі потрібно налаштувати сам pipeline, описавши етапи тестування та розгортання. За допомогою цього pipeline GitLab буде автоматично виконувати команду для побудови та розгортання додатку після кожного пушу в основну гілку (main
).
Ось приклад файлу .gitlab-ci.yml
:
stages:
- test
- deploy
variables:
NODEENV: test
beforescript:
- echo "$ENVFILECONTENT" > .env
test:
stage: test
image: node:18
script:
- npm install
- npm test
deploy:
stage: deploy
beforescript:
- mkdir -p ~/.ssh
- echo "$SSHPRIVATEKEY" > ~/.ssh/ided25519
- chmod 600 ~/.ssh/ided25519
- echo "$SSHKNOWNHOSTS" > ~/.ssh/knownhosts
script:
- |
ssh -i ~/.ssh/ided25519 -o StrictHostKeyChecking=no username@domain << 'EOF'
echo "Connected to server:"
pwd
cd /var/www/project
git pull origin main
npm install --production
npx sequelize-cli db:migrate
pm2 restart processname
EOF
only:
- main
Висновки
- Переконайтеся, що на сервері встановлені
pm2
,Node.js
таGit
. - Налаштуйте шляхи та команди відповідно до вашої структури проекту.
- Використовуйте Protected Variables GitLab для захисту чутливої інформації.
Після налаштування pipeline ваш додаток буде автоматично перевірятися та деплоїтися при кожному пуші до гілки main
, що значно спрощує процес автоматизації деплою.
Перекладено з: 🚀 Automating Node.js Deployment with GitLab CI/CD