-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configure Circle CI #20
Changes from 5 commits
2a9da2d
a42fade
d2f5c1e
f0939f9
4ee70bf
15c5f60
18262e8
703c749
011f3a3
e124d1e
10fa112
68c23f0
1539a66
283e7e3
10d9a3e
97e78a3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,42 @@ | ||
def xcpretty(cmd) | ||
if `which xcpretty` && $?.success? | ||
def xcpretty(cmd, name) | ||
if ENV['CI'] | ||
sh "set -o pipefail && #{cmd} | tee \"#{ENV['CIRCLE_ARTIFACTS']}/#{name}_raw.log\" | xcpretty --color --report junit --output \"#{ENV['CIRCLE_TEST_REPORTS']}/xcode/#{name}.xml\"" | ||
elsif `which xcpretty` && $?.success? | ||
sh "set -o pipefail && #{cmd} | xcpretty -c" | ||
else | ||
sh cmd | ||
end | ||
end | ||
|
||
task :build_for_testing do | ||
sh "swift build" | ||
xcpretty "xcodebuild -workspace StencilSwiftKit.xcworkspace -scheme Tests build-for-testing" | ||
def plain(cmd, name) | ||
if ENV['CI'] | ||
sh "set -o pipefail && #{cmd} | tee \"#{ENV['CIRCLE_ARTIFACTS']}/#{name}_raw.log\"" | ||
else | ||
sh cmd | ||
end | ||
end | ||
|
||
task :spm_build do | ||
plain("swift build", "spm_build") | ||
end | ||
|
||
task :xcode_build do | ||
xcpretty("xcodebuild -workspace StencilSwiftKit.xcworkspace -scheme Tests build-for-testing", "xcode_build") | ||
end | ||
|
||
desc 'Run Xcode Unit Tests' | ||
task :xcode_test => :xcode_build do | ||
xcpretty("xcodebuild -workspace StencilSwiftKit.xcworkspace -scheme Tests test-without-building", "xcode_test") | ||
end | ||
|
||
desc 'Run Unit Tests' | ||
task :test => :build_for_testing do | ||
sh "swift test" | ||
xcpretty "xcodebuild -workspace StencilSwiftKit.xcworkspace -scheme Tests test-without-building" | ||
desc 'Run SPM Unit Tests' | ||
task :spm_test => :spm_build do | ||
plain("swift test", "spm_build") | ||
end | ||
|
||
desc 'Lint the Pod' | ||
task :lint do | ||
sh "pod lib lint StencilSwiftKit.podspec --quick" | ||
plain("pod lib lint StencilSwiftKit.podspec --quick", "lint") | ||
end | ||
|
||
task :default => :test | ||
task :default => :xcode_test |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
machine: | ||
xcode: | ||
version: 8.2 | ||
|
||
dependencies: | ||
pre: | ||
- gem install xcpretty --no-rdoc --no-ri --no-document --quiet | ||
- if [[ $CIRCLE_BRANCH == master ]]; then pod setup; fi | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This needs to be converted to the "download_from_s3" trick There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Jup, added it while you were typing 😆 |
||
cache_directories: | ||
- "~/.cocoapods/repos/master" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's what I meant with input from @dantoml 😄 |
||
|
||
test: | ||
override: | ||
- rake xcode_test | ||
- rake spm_test | ||
post: | ||
- if [[ $CIRCLE_BRANCH == master ]]; then rake lint; fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tip: you can use take namespaces to group relative tasks together.
A
namespace 'spm' do … end
and anamespace 'xcodebuild' do … end
would be nicer to read, and then you can name your tasks justbuild
andtest
and refer to them asrake spm:test
etc.