2016-04-09 2 views
0

Я хотел бы выполнить одно и то же задание на тестирование для нескольких версий iOS на gitlab-ci.Как выполнить несколько раз задание с изменяющимся параметром на gitlab-ci

Моя нелегкая работа состоит из следующей команды:

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

Можно ли создать своего рода цикл, чтобы выполнить эту команду для разных версий ОС и iPhone/IPad?

Для Exemple, делая тест xcodebuild для:

  • 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 ....

Thanks

ответ

-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 - iPhone 7/IOS 10,0 - IPad Mini/IOS 8,2 - IPad Mini/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 
Смежные вопросы