2016-04-09 2 views
0

gitlab-ciのいくつかのiOSバージョンで同じテストジョブを実行したいと思います。gitlab-ciでパラメータを変更してジョブを何回実行するか

私のテストジョブは、以下のコマンドで構成されています

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

それは異なるOSのバージョンやiPhone/iPad用のこのコマンドを実行するには、ループのようなものを作成することは可能ですか?

  • iPhone 6/iOSの9.3
  • iPhone 6/iOSの10.0
  • iPhone 7/iOSの10.0
  • のiPadミニ/ iOSの8.2
  • :用xcodebuildテストをやってexempleするため

  • iPad Mini/iOS 9.3 ....

ありがとうございました

答えて

-2

使用ステージ:

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 

一段ためbuild_project、彼らはisolatedです。

+0

私の質問は、ジョブとステージを複製せずに、複数のバージョンのデバイスとiOSで同じジョブを実行することに関するものでした。 exempleについては 、のために 'xcodebuild test'をやって: - iPhone 6/iOSの9.3 - iPhone 6/iOSの10.0 - 7/iOSの10.0 iPhone - iPadのミニ/ iOSの8.2 - iPadのミニ/ iOSの9.3 。 ... –

+0

この例を編集して質問に追加してください! –

0

使用gitlab-CI templateおよび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" 

を私は簡単にするために、fastlaneを使用するようにプラグインscanをお勧めします作品:

# 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ジョブ:

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

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

end