2016-12-14 76 views
0

所以我配置了我的.travis.yml來構建和測試我的ASP.NET Core項目,但是現在我必須將其配置爲在docker中運行。到目前爲止,我已經爲Dockerfile構建了Dockerfile,但後來我開始計算:使用Travis CI測試ASP.NET Core Docker容器

  • 我應該在Docker Container內部還是外部運行測試?或者它甚至很重要?
  • 如果我應該在裏面做到這一點如何實現?因爲dotnet test沒有**/*/支持,而且我的容器不運行我的bash腳本。

UPDATE:

  • 或者我應該構建和測試外,後來創建dockerimage?

的Dockerfile是:

FROM microsoft/dotnet:latest 
ARG source=. 
WORKDIR /usr/src/project 

COPY $source . 

RUN dotnet restore 

EXPOSE 5000 
CMD dotnet build **/*/project.json 

而且.sh是:

#!/bin/bash 
cd test/ 
for D in `find ./ -maxdepth 1 -type d` 
do 
     if [ -a ./project.json ] 
     then 
      (cd ${D}; dotnet test;) 
     fi 
done 

任何建議都不勝感激。

+1

你介意分享那你最終做? – valorl

+0

@valorl對不起,我忘了,我的解決方案是在答案 –

回答

3

所以我決定泊塢窗構建和發佈只應做,如果構建和測試成功

.travis.yml

language: csharp 

sudo: required 


solution: Solution.sln 


mono: none 

dotnet: 1.0.0-preview2-1-003177 


services: 

    - docker 


install: 

    - npm install -g bower 

    - npm install -g gulp 


before_script: 

    - chmod a+x ./scripts/test.sh 


script: 

    - dotnet restore && dotnet build **/*/project.json 

    - ./scripts/test.sh --quite verify 

    - if [ "$TRAVIS_BRANCH" == "master" ] ; then 

      dotnet publish --no-build src/Main -o publish/ ; 

      docker build -t project . ; 

      fi 

     

after_success: 

    - if [ "$TRAVIS_BRANCH" == "master" ] ; then 

      /* Push to docker repo */ 

      fi 
相關問題