Npm start & не запускает приложение, Дженкинс

Я столкнулся с проблемой. Я хочу сначала установить зависимости в приложении, когда я запускаю задание, а затем запускаю его. Вот моя конфигурация конвейера jenkins:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
            }
        }

        stage('Run') {
            steps {
                sh 'npm start &'
            }
        }
    }
}

Все строится без ошибок

Но приложение, к сожалению, не запускается. Помогите пожалуйста, вот логи:

Started by user admin
Obtained Jenkinsfile from git https://github.com/panic08/lapay-payment-frontendd
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /home/panic/.jenkins/workspace/Jenkins-testing
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Checkout SCM)
[Pipeline] checkout
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
No credentials specified
 > git rev-parse --resolve-git-dir /home/panic/.jenkins/workspace/Jenkins-testing/.git # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/panic08/lapay-payment-frontendd # timeout=10
Fetching upstream changes from https://github.com/panic08/lapay-payment-frontendd
 > git --version # timeout=10
 > git --version # 'git version 2.34.1'
 > git fetch --tags --force --progress -- https://github.com/panic08/lapay-payment-frontendd +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
Checking out Revision f0c9cf9c6f5d1708492c44cd77f2bf3178ece211 (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f f0c9cf9c6f5d1708492c44cd77f2bf3178ece211 # timeout=10
Commit message: "v4.0"
 > git rev-list --no-walk 975f62a81650b3e5a4e6f2b8c61ccc7f5423f214 # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] sh
+ npm install
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@csstools/[email protected]',
npm WARN EBADENGINE   required: { node: '^14 || >=16' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@csstools/[email protected]',
npm WARN EBADENGINE   required: { node: '^14 || ^16 || >=18' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@testing-library/[email protected]',
npm WARN EBADENGINE   required: { node: '>=14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>=14.0.0' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>= 14.15.0' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>=14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>=14' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '[email protected]',
npm WARN EBADENGINE   required: { node: '>=14.0.0' },
npm WARN EBADENGINE   current: { node: 'v12.22.9', npm: '8.5.1' }
npm WARN EBADENGINE }

up to date, audited 1514 packages in 14s

236 packages are looking for funding
  run `npm fund` for details

6 high severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Run)
[Pipeline] sh
+ npm start
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

Примечание

Если я его запускаю не с npm start &, а с npm start, то приложение запускается, но jenkins не переходит на следующий пайплайн

«с запуском npm приложение запускается, но jenkins не переходит к следующему конвейеру», хм, какой следующий конвейер? в вашем вопросе есть только один конвейер, и нет даже этапа, следующего за этапом «запуска». Каков ваш конкретный вопрос?

hakre 09.04.2023 20:49

@hakre Вопрос в том, что npm запускается и не работает. Если я добавлю новый пайплайн, то он явно не пройдет, потому что зависает на старте npm

panic08 09.04.2023 20:54

Если это вопрос, ответ таков, что это действительно работает. И очень вероятно, что вы намеревались сделать что-то другое - в обоих случаях. Что вы все еще скрываете, но, пожалуйста, поделитесь больше, если вы делаете вид, что скрываете большую часть своего вопроса, трудно ответить.

hakre 09.04.2023 20:57

@hakre Я ничего не скрываю. Просто после того, как Дженкинс запустит «npm start &», он завершится, но сервер не запустится. Если я запускаю только «npm start», я не могу добавить следующий конвейер, потому что он просто не будет выполняться, jenkins будет обрабатывать его бесконечно.

panic08 09.04.2023 21:02

Будьте уверены, он запускается, просто with & Jenkins не ждет, пока он закончится. без амперсанда Дженкинс ждет, пока он завершится, но он не завершится сам по себе, поэтому Дженкинс продолжает ждать. Вы не хотите и того, и другого, но что-то другое, что я считаю не представленным в вашем вопросе.

hakre 09.04.2023 21:07
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На самом деле npm start & запускает приложение, но в фоновом режиме.

Поскольку это единственное, что нужно сделать - выполнение npm start в фоновом режиме - команда sh выполняет, а затем завершает работу.

Дженкинс понимает, что этап «пробега» завершен, убирается и с радостью делает это. Как было велено. Единственный человек, оставшийся в покое, — это пользователь, который хотел сделать что-то другое, что, очевидно, трудно объяснить не только Дженкинсу.

Да, но проблема в том, что Дженкинс не запускает сервер реагирования. Он запускает команду «npm start &» и завершает работу, но сервер по-прежнему не запускается. Однако, если я попрошу его запустить «npm start», он запускает сервер, не завершает свою работу, но сервер работает

panic08 09.04.2023 21:01

Конечно, потому что, если вы работаете в фоновом режиме, Jenkins очищается, когда sh завершает работу, убивая все дочерние процессы, созданные на этапе. В другом случае npm start не находится в фоновом режиме, поэтому он продолжает работать. Поэтому Дженкинс поддерживает этап «запуска», поскольку он еще не завершен. Откуда вы взяли рецепт для запуска службы в сценарном сценарии? Это не имеет особого смысла для того, что вы теперь можете испытать самостоятельно: либо это сделано до того, как вы что-то получили, либо вы что-то получили, но не можете делать ничего другого параллельно. Чего вы пытаетесь достичь с работающим сервером?

hakre 09.04.2023 21:04

Я хочу автоматически развернуть его после успешной сборки в Jenkins. Для этого я хочу запустить «npm start &»

panic08 09.04.2023 21:07

Развертывать? Работая в фоновом режиме? Тогда сцена в Дженкинсе для этого не подходит. Вы можете инициировать некоторые действия по развертыванию, но работа в фоновом режиме на этапе Jenkins не продвигает вас вперед.

hakre 09.04.2023 21:09

Я хочу развернуть проект, если он успешно построен в jenkins. Как вы сказали, мне, вероятно, нужно использовать что-то еще

panic08 09.04.2023 21:12

это немного выходит за рамки вопроса, но обычно я делаю это сначала локально, нахожу правильную последовательность команд для выполнения работы, а затем кодирую ее как этап конвейера jenkins. поскольку все проекты разные, я могу только догадываться, что npm start запускает приложение реакции. проверьте, есть ли этап сборки, такой как сборка npm, и если нет, то вы найдете файлы для развертывания в подпапке сборки или аналогичной. проверьте с используемой вами инфраструктурой приложения, как работают развертывания, это может отличаться.

hakre 09.04.2023 21:16

Другие вопросы по теме