2017-01-06 2 views
6

Swift 3.0에서 CocoaPods로 작성한 iOS 프로젝트가 있습니다. 이 프로젝트를 위해 Gitlab CI를 구성했는데 완벽하게 작동합니다.Gitlab CI의 Swift 3.0 프로젝트 코드 적용

stages: 
- build 
build_project: 
    stage: build 
    script: 
    - rm -rf Pods;rm -rf MyProject.xcworkspace;rm -rf MyProject.xcodeproj/project.xcworkspace 
    - pod install 
    - xcodebuild clean -workspace MyProject.xcworkspace -scheme MyProject | xcpretty 
    - xcodebuild test -workspace MyProject.xcworkspace -scheme MyProject -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.2' | xcpretty -s 
tags: 
- ios 
- lunchdot 

내 Gitlab의 환매 특약에서이 프로젝트의 코드 커버리지를 볼 수 없습니다 :이 내 .gitlab-ci.yml 파일입니다. 현재 모든 빌드의 적용 범위 열은 비어 있습니다. 내가 설정하려고했습니다 CI/CD 파이프 라인 Gitlab 설정에서 구문 분석 테스트 분석,하지만 내가 스위프트에 대한 정규식 몰라서 아무런 영향을 미치지 않았다. Gitlab CI에서 Swift 프로젝트의 코드 적용 범위를 설정할 수 있습니까? 어떻게해야합니까?

+0

하나의 의견조차도 ... :(답변도 필요합니다. – OliverM

+0

"코드 수집 범위"를 설정 했습니까? 그럼에도 불구하고 적용 범위가 없음 – OliverM

+0

@OliverM 예, 알았습니다. 그것은 효과가 없습니다. 코드 커버 리지 분석 Xcode 도구를 사용하고 있습니다. – Svyatoslav

답변

5

그래서 수백만 가지 방법을 시도했는데 문제는 xcpretty으로 나타났습니다. 제거한 후에 gitlab ci coverage 데이터로 일관성있는 결과를 얻기 시작했습니다. 걱정하지 않는 수많은 데이터를 얻지 않으려면 gitlab yams 파일에 -quiet을 사용할 수 있습니다. 나는 그것을 모두 게시 할 것이므로, 계속 읽으십시오.

하나는 여전히 커버리지 분석을위한 외부 도구를 필요로 - xcov 내가 듬뿍 바르다를 사용하므로 더 이상 사용할 수 없을 것으로 보인다. 매력처럼 일했습니다.

1) slather를 얻을 :

는 단계입니다.

2) .slather.yml 파일을 정리하십시오. 광산은 다음과 같습니다 (YourApp은 앱 이름 분명히입니다) :

# .slather.yml 

coverage_service: cobertura_xml 
xcodeproj: ./YourApp.xcodeproj 
workspace: ./YourApp.xcworkspace 
scheme: YourApp 
source_directory: ./YourApp 
output_directory: path/to/xml_report 
ignore: 
- "**/Pods/*" 
- "thirdparty/*" 
- "./Scripts/*" 
- "**/3rdParty/*" 
- "../**/Developer/*" 
- "**/libraries/*" 
- "Module-Core/*" 
- "Module-Components/*" 
- "**/AppUnitTests/*" 

당신은 완전히 당신까지 등 codecov.io에서 HTML, XML 등의 테스트 출력을 얻을 수 있습니다. 슬러지 GitHub 페이지에서 가능한 방법을 확인하십시오. 그러나 현재의 문제에 대해서는 gitlab이 명령을 내릴 수 있도록 커맨드 라인에보고하는 것이 필요합니다. 그것은 올바르게 gitlab yaml 파일을 설정하는 곳입니다.

3) .gitlab-ci.yml 파일을 설정하십시오.광산은 다음과 같습니다

stages: 
    - build 

build_project_1: 
    stage: build 
    script: 
    - xcodebuild clean -workspace YourApp.xcworkspace -scheme YourApp -quiet 
    - xcodebuild test -workspace YourApp.xcworkspace -scheme YourApp -destination 'platform=iOS Simulator,name=iPhone 6,OS=10.3.1' -enableCodeCoverage YES -quiet 
    after_script: 
    - slather coverage -s 

    only: 
    - master 

4) 다음 단계가 있습니다 : 당신의 gitlab 페이지/프로필

  • 이동 또는 설정

  • 이동 호출 어떤 그 다음에 파이프 라인

Settings/Pipelines

  • 스크롤 까지 시험 범위는을 구문 분석하고 거기에이 정규식 표현을 추가 \d+\%\s*$

Add your regex expression in the space provided and then save it

을 그리고 그게이다. 빌드를 호출하기 만하면됩니다.

+0

텍스트의 정규식이 올바르지 않습니다. 그림에서 정규식을 사용하거나'''\ d + (? : \. \ d *)? \ % $''' –