calabash / calabash-ios-server

An embedded HTTP server for performing queries and test automation
Other
87 stars 82 forks source link

Jenkins: jobs push calabash artifacts to S3 #406

Closed jmoody closed 6 years ago

jmoody commented 6 years ago

Motivation

Completes:

$ bin/ci/jenkins/s3-publish.sh 
Usage: bin/s3-publish {release | adhoc} [--dry-run]

The first argument controls how the SHA in the S3 url is created.

release => s3://ios-lpserver/<SHA> will be the current git SHA
  adhoc => s3://ios-lpserver/<SHA> will be the SHA of the dylib

Test

john7doe commented 6 years ago

release => s3://ios-lpserver/ will be the current git SHA adhoc => s3://ios-lpserver/ will be the SHA of the dylib

Why not just always the current git SHA?

jmoody commented 6 years ago

Why not just always the current git SHA?

This is following the pattern set by DeviceAgent artifacts on S3.

Released versions can be traced back to a specific commit.

Ad hoc versions are for one off testing. Suppose I am testing uncommitted changes. If I push the dylib to S3, then the file on S3 is overwritten. However, Test Cloud might have cached the old dylib and decided not to fetch the most recent.

john7doe commented 6 years ago

if we only allowed uploads from committed repos, then we would have the same nice semantics for any upload and not have to worry about caching.