주로 단위 테스트를 Gitlab CI에 통합하려고합니다.Gitlab CI : Docker가 SSH를 통해 원격 MySQL에 연결합니다. 테스트를 실행하기 전에 포트 포워딩
NodeJS 응용 프로그램은 로컬로 포트를 전달하는 다른 서버 (예 : ssh -L 3306:127.0.0.1:3306 [email protected]
)에서 호스팅되는 MySQL 데이터베이스를 사용하므로 모든 테스트가 연결되는대로 로컬로 전달됩니다.
CI 스크립트 (아래 포함)는 작동하는 것으로 보이며 테스트는 mysql 연결이 필요없는 모든 기능을 전달합니다. 원격 서버에 SSH를 사용하려면 CI 러너가 필요하며 나머지 기능은 테스트 해 보겠습니다.
그러나 gitlab-ci.yml
스크립트에서 공개 키를 사용하여이 원격 서버에 내 gitlab-ci.yml
스크립트를 실행하고 테스트를 실행하기 전에 127.0.0.1로 로컬 포트 포워딩을 수행하는 방법을 찾기 위해 고심하고 있습니다.
공용/개인 키 쌍이 Docker 내부에서 생성되는지 또는 일반적으로 러너가 설정된 컴퓨터에서 생성되는지 여부에 대해서도 확신 할 수 없습니다.
누구나 올바른 방향으로 나를 가리킬 수 있습니까?
image: node:7.4
before_script:
- apt-get update -qy
- npm install -g mocha chai assert mysql require moment
stages:
- test
test_job:
stage: test
tags: ["mySpecificRunner"]
script:
- npm run test
environment:
only:
- development
안녕하세요. 자세한 답변을 보내 주셔서 감사합니다. 이제 주말에이 도구를 사용해보세요! 곧 다시보고 할 것입니다. – user5156141
이것은 대우를합니다. 한 가지해야 할 것은 공개 키를 배포 키로 추가하는 것입니다. 호스트 키 확인 오류가 발생했습니다. 또한 중요한 라인 뒤에 "|| exit 1"을 추가합니다 (특히 npm에 도달 할 때 배포/게시 단계에서). 잘못된 것이 있으면 빌드 단계를 강제로 실패합니다 – user5156141