Skip to content

[iOS][CI] Disable automatically code signing for TestApp #27591

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

Closed
wants to merge 1 commit into from

Conversation

xta0
Copy link
Contributor

@xta0 xta0 commented Oct 9, 2019

Stack from ghstack:

Summary

Since the nightly jobs are lack of testing phases, we don't really have a way to test the binary before uploading it to AWS. To make the work more solid, we need to figure out a way to verify the binary.

Fortunately, the XCode tool chain offers a way to build your app without XCode app, which is the xcodebuild command. Now we can link our binary to a testing app and run xcodebuild to to see if there is any linking error. The PRs below have already done some of the preparation jobs

The challenge comes when testing the arm64 build as we don't have a way to code-sign our TestApp. Circle CI has a tutorial but is too complicated to implement. Anyway, I figured out an easier way to do it

  1. Disable automatically code sign in XCode
  2. Export the encoded developer certificate and provisioning profile to org-context in Circle CI (done)
  3. Install the developer certificate to the key chain store on CI machines via Fastlane.
  4. Add the testing code to PR jobs and verify the result.
  5. Add the testing code to nightly jobs and verify the result.

Test Plan

  • Both PR jobs and nightly jobs can finish successfully.
  • xcodebuild can finish successfully

Differential Revision: D17844036

xta0 added a commit that referenced this pull request Oct 9, 2019
@xta0 xta0 requested review from ljk53 and kostmo October 9, 2019 06:34
@xta0 xta0 added module: ios Related to iOS support - build, API, Continuous Integration, document module: ci Related to continuous integration labels Oct 9, 2019
@xta0 xta0 changed the title [iOS][CI]Disable automatically code signing for TestApp [iOS][CI] Disable automatically code signing for TestApp Oct 9, 2019
@facebook-github-bot
Copy link
Contributor

@xta0 merged this pull request in 7591010.

xta0 added a commit that referenced this pull request Oct 12, 2019
## Summary

Since the nightly jobs are running without any testing code, we don't really have a way to verify the binary before uploading it to AWS. To make the work more solid, I came up with an approach to test our builds.

## How it works

The XCode tool chain offers a way to build your app without XCode app, which is the [xcodebuild](https://developer.apple.com/library/archive/technotes/tn2339/_index.html) command. So the approach is link our binaries to a testing app and run `xcodebuild` to see if there is any linking error. The PRs below have already done some of the preparation jobs

- [#26261](#26261) adds a dummy testing app
- [#26632](#26632) adds a ruby script that does all the XCode configuration.

The challenge comes when testing the arm64 build as we don't have a way to code-sign our TestApp. Circle CI has a  [tutorial](https://circleci.com/docs/2.0/ios-codesigning/)  but is too complicated to implement. Anyway, I figured out an easier way to do it 

1. Disable automatically code sign in XCode (done #27591 )
2. Export the encoded developer certificate and provisioning profile to org-context in Circle CI (done)
3. Install the developer certificate to the key chain store on CI machines via Fastlane. (done #27593 )
4. Add the testing code to PR jobs and verify the result. (done #27594 )
5. Add the testing code to nightly jobs and verify the result.

## Test Plan

- Both PR jobs and nightly jobs can finish successfully.
- `xcodebuild` can finish successfully

Differential Revision: [D17893271](https://our.internmc.facebook.com/intern/diff/D17893271)
xta0 added a commit that referenced this pull request Oct 12, 2019
## Summary

Since the nightly jobs are running without any testing code, we don't really have a way to verify the binary before uploading it to AWS. To make the work more solid, I came up with an approach to test our builds.

## How it works

The XCode tool chain offers a way to build your app without XCode app, which is the [xcodebuild](https://developer.apple.com/library/archive/technotes/tn2339/_index.html) command. So the approach is link our binaries to a testing app and run `xcodebuild` to see if there is any linking error. The PRs below have already done some of the preparation jobs

- [#26261](#26261) adds a dummy testing app
- [#26632](#26632) adds a ruby script that does all the XCode configuration.

The challenge comes when testing the arm64 build as we don't have a way to code-sign our TestApp. Circle CI has a  [tutorial](https://circleci.com/docs/2.0/ios-codesigning/)  but is too complicated to implement. Anyway, I figured out an easier way to do it 

1. Disable automatically code sign in XCode (done #27591 )
2. Export the encoded developer certificate and provisioning profile to org-context in Circle CI (done)
3. Install the developer certificate to the key chain store on CI machines via Fastlane. (done #27593 )
4. Add the testing code to PR jobs and verify the result. (done #27594 )
5. Add the testing code to nightly jobs and verify the result.

## Test Plan

- Both PR jobs and nightly jobs can finish successfully.
- `xcodebuild` can finish successfully

Differential Revision: [D17893271](https://our.internmc.facebook.com/intern/diff/D17893271)
facebook-github-bot pushed a commit that referenced this pull request Oct 12, 2019
Summary:
Pull Request resolved: #27784

## Summary

Since the nightly jobs are running without any testing code, we don't really have a way to verify the binary before uploading it to AWS. To make the work more solid, I came up with an approach to test our builds.

## How it works

The XCode tool chain offers a way to build your app without XCode app, which is the [xcodebuild](https://developer.apple.com/library/archive/technotes/tn2339/_index.html) command. So the approach is link our binaries to a testing app and run `xcodebuild` to see if there is any linking error. The PRs below have already done some of the preparation jobs

- [#26261](#26261) adds a dummy testing app
- [#26632](#26632) adds a ruby script that does all the XCode configuration.

The challenge comes when testing the arm64 build as we don't have a way to code-sign our TestApp. Circle CI has a  [tutorial](https://circleci.com/docs/2.0/ios-codesigning/)  but is too complicated to implement. Anyway, I figured out an easier way to do it

1. Disable automatically code sign in XCode (done #27591 )
2. Export the encoded developer certificate and provisioning profile to org-context in Circle CI (done)
3. Install the developer certificate to the key chain store on CI machines via Fastlane. (done #27593 )
4. Add the testing code to PR jobs and verify the result. (done #27594 )
5. Add the testing code to nightly jobs and verify the result.

## Test Plan

- Both PR jobs and nightly jobs can finish successfully.
- `xcodebuild` can finish successfully

Test Plan: Imported from OSS

Differential Revision: D17893271

Pulled By: xta0

fbshipit-source-id: cb7679224e062a4884615f625a2933cad8bd4c11
thiagocrepaldi pushed a commit to thiagocrepaldi/pytorch that referenced this pull request Feb 4, 2020
Summary:
Pull Request resolved: pytorch#27591

## Summary

Since the nightly jobs are lack of  testing phases, we don't really have a way to test the binary before uploading it to AWS. To make the work more solid, we need to figure out a way to verify the binary.

Fortunately, the XCode tool chain offers a way to build your app without XCode app, which is the [xcodebuild](https://developer.apple.com/library/archive/technotes/tn2339/_index.html) command. Now we can link our binary to a testing app and run `xcodebuild` to to see if there is any linking error. The PRs below have already done some of the preparation jobs

- [pytorch#26261](pytorch#26261)
- [pytorch#26632](pytorch#26632)

The challenge comes when testing the arm64 build as we don't have a way to code-sign our TestApp. Circle CI has a  [tutorial](https://circleci.com/docs/2.0/ios-codesigning/)  but is too complicated to implement. Anyway, I figured out an easier way to do it

1. Disable automatically code sign in XCode
2. Export the encoded developer certificate and provisioning profile to org-context in Circle CI (done)
3. Install the developer certificate to the key chain store on CI machines via Fastlane.
4. Add the testing code to PR jobs and verify the result.
5. Add the testing code to nightly jobs and verify the result.

## Test Plan

- Both PR jobs and nightly jobs can finish successfully.
- `xcodebuild` can finish successfully

Test Plan: Imported from OSS

Differential Revision: D17844036

Pulled By: xta0

fbshipit-source-id: 741f0442a718c9bda706107a2c4c3baed4c37137
thiagocrepaldi pushed a commit to thiagocrepaldi/pytorch that referenced this pull request Feb 4, 2020
Summary:
Pull Request resolved: pytorch#27784

## Summary

Since the nightly jobs are running without any testing code, we don't really have a way to verify the binary before uploading it to AWS. To make the work more solid, I came up with an approach to test our builds.

## How it works

The XCode tool chain offers a way to build your app without XCode app, which is the [xcodebuild](https://developer.apple.com/library/archive/technotes/tn2339/_index.html) command. So the approach is link our binaries to a testing app and run `xcodebuild` to see if there is any linking error. The PRs below have already done some of the preparation jobs

- [pytorch#26261](pytorch#26261) adds a dummy testing app
- [pytorch#26632](pytorch#26632) adds a ruby script that does all the XCode configuration.

The challenge comes when testing the arm64 build as we don't have a way to code-sign our TestApp. Circle CI has a  [tutorial](https://circleci.com/docs/2.0/ios-codesigning/)  but is too complicated to implement. Anyway, I figured out an easier way to do it

1. Disable automatically code sign in XCode (done pytorch#27591 )
2. Export the encoded developer certificate and provisioning profile to org-context in Circle CI (done)
3. Install the developer certificate to the key chain store on CI machines via Fastlane. (done pytorch#27593 )
4. Add the testing code to PR jobs and verify the result. (done pytorch#27594 )
5. Add the testing code to nightly jobs and verify the result.

## Test Plan

- Both PR jobs and nightly jobs can finish successfully.
- `xcodebuild` can finish successfully

Test Plan: Imported from OSS

Differential Revision: D17893271

Pulled By: xta0

fbshipit-source-id: cb7679224e062a4884615f625a2933cad8bd4c11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Merged module: ci Related to continuous integration module: ios Related to iOS support - build, API, Continuous Integration, document
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants