Windows без прав адміністратора “nvm use …” | Українська

Квітень 2025 — команда React Native випустила версію 0.79, яка покращує продуктивність, оновлює інструменти та вдосконалює робочі процеси для розробників. Оновлення містять важливі зміни, які полегшують розробку кросплатформенних додатків для iOS, Android та інших платформ. У цій статті розглянемо основні нововведення.

📁 Крок 1: Створення файлу .gitlab-ci.yml

Перший крок — створення файлу .gitlab-ci.yml у корені вашого Node.js проекту. Це конфігураційний файл для CI/CD pipeline, в якому визначаються етапи тестування та деплою.

🔐 Крок 2: Додавання змінних середовища

Створіть змінну в GitLab CI/CD з ім'ям ENV_FILE_CONTENT, в яку збережіть вміст вашого .env файлу. Це допоможе відновити цей файл у вашому CI/CD pipeline.

Для цього:

  1. Перейдіть до проекту на GitLab.
  2. Зайдіть в SettingsCI/CDVariables.
  3. Додайте нову змінну:
  • Key: ENV_FILE_CONTENT
  • Value: (Вставте вміст вашого .env файлу)

🔑 Крок 3: Генерація SSH ключів

Для того щоб GitLab Runner зміг підключитись до вашого сервера, необхідно згенерувати пару SSH ключів:

ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/idrsagitlab

Це створить два файли:

  • id_rsa_gitlab (приватний ключ)
  • id_rsa_gitlab.pub (публічний ключ)

🧪 Крок 4: Додавання приватного SSH ключа до GitLab

Додайте приватний SSH ключ до GitLab як змінну CI/CD:

  1. Перейдіть до SettingsCI/CDVariables.
  2. Додайте змінну:
  • Key: SSH_PRIVATE_KEY
  • Value: (Виведіть вміст файлу cat ~/.ssh/id_rsa_gitlab)

🛠️ Крок 5: Налаштування доступу SSH до сервера

  1. Скопіюйте публічний ключ на сервер в файл authorized_keys:

cat ~/.ssh/idrsagitlab.pub | ssh root@your-server-ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

  1. Переконайтесь, що сервер приймає SSH з'єднання за допомогою ключа.

🔒 Крок 6: Додавання відбитка SSH хоста

Щоб уникнути запитів на підтвердження достовірності хоста, додайте відбиток хоста до GitLab як змінну SSH_KNOWN_HOSTS:

ssh-keyscan -H reisalestrainer.cloud

Скопіюйте останній рядок виводу, що виглядатиме приблизно так:

resale.com ssh-ed25519 AKKKC3NzaC1lZDI1NTE5AKKKIExampleKeyHere

Додайте це значення як змінну:

  • Key: SSH_KNOWN_HOSTS
  • Value: (Вставте скопійований рядок)

⚙️ Крок 7: Налаштування CI/CD pipeline

Ось базовий файл .gitlab-ci.yml, який можна використовувати:

stages:
- test
- deploy
variables:
NODEENV: test
before
script:
- echo "$ENVFILECONTENT" > .env
test:
stage: test
image: node:18
script:
- npm install
- npm test
deploy:
stage: deploy
beforescript:
- mkdir -p ~/.ssh
- echo "$SSH
PRIVATEKEY" > ~/.ssh/ided25519
- chmod 600 ~/.ssh/ided25519
- echo "$SSH
KNOWNHOSTS" > ~/.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 process
name
EOF
only:
- main

Заключні примітки

  • Переконайтесь, що на вашому сервері встановлено pm2, Node.js та Git.
  • Налаштуйте шляхи і команди деплою відповідно до структури вашого додатку.
  • Використовуйте Protected Variables GitLab для захисту чутливої інформації.

З цими налаштуваннями ваш CI/CD pipeline автоматично перевірятиме і розгортатиме ваш Node.js додаток при кожному пуші в гілку main. Насолоджуйтесь автоматизацією!

Перекладено з: Windows Non-Admin “nvm use …” | Bahasa