2016-04-09 4 views
0

Ich möchte den gleichen Test-Job für mehrere iOS-Version auf gitlab-ci ausführen.Wie man mehrmals einen Job mit einem sich ändernden Parameter auf gitlab-ci ausführt

ist mein Test Job des folgenden Befehls zusammen:

xcodebuild test -workspace myproject.xcworkspace -scheme myScheme -destination 'platform=iOS Simulator,name=iPhone 6S,OS=9.3' 

Ist es möglich, eine Art Schleife erstellen Sie diesen Befehl für verschiedene OS-Versionen und iPhone/iPad ausführen?

Für exemple, tun ein xcodebuild Test für:

  • iPhone 6/iOS 9.3
  • iPhone 6/iOS 10.0
  • iPhone 7/iOS 10.0
  • iPad Mini/iOS 8.2
  • iPad Mini/iOS 9.3 ....

Danke

Antwort

-2

Nutzungsstufen:

stages: 
    - buildForiPhone 
    - buildForiPad 

build_project: 
    stage: buildForiPhone 
    script: 
    - xcodebuild for iPhone here 
    tags: 
    - Swift 
    - iOS9 

build_project: 
    stage: buildForiPad 
    script: 
    - xcodebuild for iPad here 
    tags: 
    - Swift 
    - iOS9 

Eine Stufe für ein build_project, und sie sind isolated.

+0

Meine Frage war mehr über die Ausführung desselben Jobs für mehrere Versionen von Geräten und iOS, ohne die Jobs und Stufen zu duplizieren. Für exemple, eine 'xcodebuild test' zu tun: - iPhone 6/iOS 9.3 - iPhone 6/iOS 10.0 - iPhone 7/iOS 10.0 - iPad Mini/iOS 8.2 - iPad Mini/iOS 9.3 . ... –

+0

Bitte bearbeite und füge dieses Beispiel zu deiner Frage hinzu! –

0

Verwenden Gitlab-ci template und eine Variable definieren, die den Namen des Simulators enthält, beispielsweise mit einem iPhone 5S:

# Job 
.test_ios_job: &test_ios_job_def 
     stage: test_ios 
     script: 
      - xcodebuild test -workspace myproject.xcworkspace -scheme myScheme -destination 'platform=iOS Simulator,name=$SIMULATOR' 

# iPhone 5S 

test_ios_iPhone5S_9.1: 
     <<: *test_ios_job_def 
     variables: 
      SIMULATOR: "iPhone 5S,OS=9.1" 

test_ios_iPhone5S_10.1: 
     <<: *test_ios_job_def 
     variables: 
      SIMULATOR: "iPhone 5S,OS=10.1" 

würde ich empfehlen, fastlane zu verwenden, Plugin scan vereinfachen die Arbeit:

# Job 
.test_ios_job: &test_ios_job_def 
     stage: test_ios 
     script: 
      - fastlane testios emulatorname:"$SIMULATOR" 

test_ios_iPhone5S_9.1: 
     <<: *test_ios_job_def 
     variables: 
      SIMULATOR: "iPhone 5s (9.1)" 

test_ios_iPhone5S_10.1: 
     <<: *test_ios_job_def 
     variables: 
      SIMULATOR: "iPhone 5s (10.1)" 

fastlane Job:

lane :testios do |options| 
emulatorname = options[:emulatorname] 

#Scan 
scan(
    scheme: S_APP_SCHEME_TEST, 
    clean: true, 
    device: "#{emulatorname.to_s}", 
) 

end 
Verwandte Themen