GitLab CI를 사용하여 서버에서 Express 앱을 빌드, 테스트 및 배포하려고합니다 (Runner는 셸 실행기로 실행 중입니다). 그러나 test:async
및 deploy_staging
작업은 종료되지 않습니다. 그러나 GitLab 내부에서 터미널을 확인하면 Express 서버가 실제로 시작됩니다. 무엇을 제공합니까?
stages:
- build
- test
- deploy
### Jobs ###
build:
stage: build
script:
- npm install -q
- npm run build
- knex migrate:latest
- knex seed:run
artifacts:
paths:
- build/
- node_modules/
tags:
- database
- build
test:lint:
stage: test
script:
- npm run lint
tags:
- lint
# Run the Express server
test:async:
stage: test
script:
- npm start &
- curl http://localhost:3000
tags:
- server
deploy_staging:
stage: deploy
script:
- npm start
environment:
name: staging
url: my_url_here
tags:
- deployment
는 npm start
단지입니다 node build/bundle.js
. 빌드 스크립트는 Webpack을 사용하고 있습니다.
종료되지 않는 테스트 단계 동안 백그라운드 작업을 시작하므로 작업이 영원히 실행됩니다.
GitLab CI 작업의 개념은 미리 정의 된 순서로 실행되는 컴파일, 단위 테스트 실행 또는 코드 검사와 같은 정보 수집과 같은 단기 실행 작업입니다. 귀하의 경우 주문은 build -> test -> deploy
; 이후 test
작업이 완료되지 않습니다, deploy
심지어는 실행되지 않습니다.
환경에 따라 노드 앱을 배포하기 위해 다른 작업을 만들어야합니다. 예를 들어, 다음과 같은 도구를 사용하여 빌드 출력을 원격 서버로 푸시 scp
하거나 AWS에 업로드 할 수 있습니다. 그 후, 당신은의 최종 URL 참조 url:
하여 필드를 .gitlab-ci.yml
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다