2016-04-14 21 views
6

Tôi có một Gitlab CI Á hậu chạy trên các cửa sổ 10:Làm thế nào để không một xây dựng trên runner vỏ Gitlab CI

before_script: 
    - "echo off" 
    - 'call "%VS120COMNTOOLS%\vsvars32.bat"' 
    - echo. 
    - set 
    - echo. 

stages: 
    - build 

build: 
    stage: build 
    script: 
    - 'StatusTest.exe' 
    #- msbuild... 

Tôi cố gắng để không xây dựng với StatusText.exe (Tôi cố gắng trở về mã trạng thái -1 , 0,1; ném một ngoại lệ, vv) Nhưng Runner chỉ ghi lại ngoại lệ và tiếp tục với các bước sau.

Điều gì xác định rằng trình bao hệ vỏ CI sẽ không thành công và không tiến hành bước tiếp theo?

Output:

... 
windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log 
$ echo. 

$ StatusTest.exe 

Unhandled Exception: System.Exception: tralala 
    at StatusTest.Program.Main(String[] args) 
$ echo "Restoring NuGet Packages..." 
... 
+0

phải đối mặt với vấn đề tương tự như bạn ngày hôm nay, tôi đã đăng một câu trả lời đang làm việc cho tôi.Hy vọng nó sẽ giúp bạn và những người khác –

Trả lời

6

Điều gì xác định rằng trình bao hệ vỏ CI sẽ không thành công và không chuyển sang bước tiếp theo?

1) Khi nó nên không

Bạn cần phải thêm dòng này trong kết quả thực hiện gitlab-ci.yml

- # .... 
- exit 1 

Giai đoạn bạn nên thất bại và không đi đến bước tiếp theo:

enter image description here

và sau đó khi bạn nhìn vào giai đoạn của mình (trong trường hợp của tôi là một) kết quả sẽ được thất bại:

enter image description here

2) Khi nói nên thành công

Bạn cần phải thêm dòng này trong kết quả thực hiện gitlab-ci.yml

- # .... 
- exit 0 

Giai đoạn của bạn nên:

enter image description here

và sau đó khi bạn nhìn vào sân khấu của bạn (trong trường hợp của tôi lần thứ 3 một) kết quả sẽ là Ok và sẵn sàng để đi đến giai đoạn tiếp theo:

enter image description here

0

bạn StatusTest.exe đã trở lại một tín hiệu 1,0, -1 là mã trạng thái. Nó phải được thực hiện trong ứng dụng của bạn. Nếu không, người chạy sẽ không thông báo nếu ứng dụng của bạn không thành công. Hầu hết mọi ngôn ngữ lập trình đều có cách để trả lại mã trạng thái.

C#

Java

System.exit(exitCode) # exitCode = 1 or 0 or -1

[...] và vân vân.

Có thể cố gắng không ném ngoại lệ, chỉ cần trả lại mã trạng thái.

Các vấn đề liên quan