2992b74c51aef19cd9ed7707173317c880f19cf8
wiki/info/landscape/building-and-deploying.md
| ... | ... | @@ -77,8 +77,9 @@ The following descriptions are based on a situation where an Xmake migration has |
| 77 | 77 | |
| 78 | 78 | For iOS and Android there are two different build processes in place. After changing from MiOS to xMake during July 2017, things have changed considerably. This is an attempt to summarize the technical steps necessary to get the build done and hand things over to the "Final Assembly" department for deployment to the stores. |
| 79 | 79 | |
| 80 | -Our iOS app build is described by the contents of branch ``central-ios-release-build``. We usually merge ``ubilabs--ios--develop`` into ``master`` and then ``master`` into ``central-ios-release-build``. Builds off the latter branch can be tested using [this Jenkins job](https://xmake-mobile-dev.wdf.sap.corp:8443/job/sapsailingcapture-OD-common/). Run a [Build with Parameters](https://xmake-mobile-dev.wdf.sap.corp:8443/job/sapsailingcapture-OD-common/build?delay=0sec) and enter ``central-ios-release-build`` as the TREEISH. Use ``-X 0.9.3-26`` or similar (see [here](https://wiki.wdf.sap.corp/wiki/display/xMake/Release+Notes+-+xmake) for the latest version) in the "Build Options" field to specify the latest version of Xmake. The build should succeed and produce the .ipa file somewhere in the [build's target Maven repository](http://dewdfms0036.wdf.sap.corp:8080/job/sapsailingcapture-GIT-DEV-OD-ENTERPRISE/ws/.m2/repository/com/sap/sailing/mobile/ios/SAPTracker/). |
|
| 80 | +The iOS app build is largely described by contents of a ``cfg/`` directory which is symbolically linked to from the root of the git hierarchy and is actually located under ``ios/SAPTracker/cfg``. It is independent on any Maven builds and therefore unrelated to any POM files (``pom.xml``) as used in the back-end OSGi and Android builds. Other than for the previous MiOS approach we can therefore build the contents of the ``master`` branch more or less directly. Another "sacrifice" we have to make to the iOS build is having to link ``src/`` symbolically from the root of our git to ``ios/SAPTracker/src``, but this seems adequate given the branch handling which is now much simplified over the previous Maven build where we had to separate the ``pom.xml`` contents between iOS build branches and the ``master`` branch. |
|
| 81 | 81 | |
| 82 | +Still, we use the branch ``central-ios-release-build`` to prepare for the build. We usually merge ``ubilabs--ios--develop`` into ``master`` and then ``master`` into ``central-ios-release-build``. Builds off the latter branch can be tested using [this Jenkins job](https://xmake-mobile-dev.wdf.sap.corp:8443/job/sapsailingcapture-OD-darwinintel64_dev-darwinintel64_dev/). Run a [Build with Parameters](https://xmake-mobile-dev.wdf.sap.corp:8443/job/sapsailingcapture-OD-darwinintel64_dev-darwinintel64_dev/build?delay=0sec) and enter ``central-ios-release-build`` as the TREEISH. The build should succeed and produce the .ipa file somewhere in the [build's target output](https://xmake-mobile-dev.wdf.sap.corp:8443/job/sapsailingcapture-OD-darwinintel64_dev-darwinintel64_dev/ws/gen/out/Exported-IPAs-Release-iphoneos/) |
|
| 82 | 83 | When the test build was successful, the branch contents need to be merged into the central git repository's branch ``fa/rel-1.x``, e.g., ``fa/rel-1.0``. Pushing immediately to this branch to the SAP-internal git is not permitted by Gerrit rules. Instead, it is necessary to push to ``refs/for/fa/rel-1.x``. Furthermore, the commit to be pushed needs to have a ``Change-Id:`` and a ``CR-Id:`` tag in the commit's comment. The ``Change-Id:`` is produced by a commit hook that can be installed in each developer's local git environment by using the following command: |
| 83 | 84 | |
| 84 | 85 | <pre>gitdir=$(git rev-parse --git-dir); scp -p -P 29418 d000000@git.wdf.sap.corp:hooks/commit-msg ${gitdir}/hooks/</pre> |
| ... | ... | @@ -93,7 +94,9 @@ Add the ``CR-Id: ...`` line _immediately_ under the ``Change-Id:`` line and prod |
| 93 | 94 | |
| 94 | 95 | <pre>git push origin HEAD:refs/for/fa/rel-1.x</pre> |
| 95 | 96 | |
| 96 | -It will end up in your [list of Gerrit changes](https://git.wdf.sap.corp/#/dashboard/self). Press the ``Reply`` button located in the middle of the grey bar at the top of the page. You can then vote +2 and +1 for the change and post your review. After a short moment, the blue ``Submit`` button should appear. Press it, and the branch will be merged into ``fa/rel-1.x``. Final Assembly will need to be notified using a BCP ticket, such as a Handover ticket that can be created using [this link](https://support.wdf.sap.corp/sap/bc/dsi/ii/create_zini?sap-language=EN&system_id=BCV&short_description=Handover%20%3cPPMS%20Software%20Component%20Version%3e&priority=3&main_impact=A&category_label=XX-INT-NAAS-MOBILE&incident_description=Requesting%2520Development%2520to%2520Production%2520Handover%2520for%2520the%2520App%253A%250A%253CFull%2520App%2520Name%253E%250A%250AProgram%2520Repository%2520Link%253A%250AProgram%2520Name%253A%250APPMS%2520Software%2520Component%2520Version%2520Name%253A%250APlatform%253A%2520%253CAndroid%2520%252F%2520iOS%2520%252F%2520TFS%2520(Windows)%253E%250A%250AShipment%2520Channel(s)%253A%250A%255B%255D%2520Indirect%2520shipment%2520(promotion%2520to%2520Nexus%2520only)%250A%255B%255D%2520Apple%2520App%2520Store%250A%255B%255D%2520Google%2520Play%250A%255B%255D%2520Google%2520Chrome%2520Store%250A%255B%255D%2520Amazon%2520App%2520Store%250A%255B%255D%2520BlackBerry%2520World%250A%255B%255D%2520Windows%25208%2520Store%250A%255B%255D%2520Windows%2520Phone%2520Store%250A%255B%255D%2520SMP%2520-%2520Binary%250A%255B%255D%2520SMP%2520-%2520Source%2520Code%250A%250AiOS%2520%252F%2520Android%250A----------------%250ALink%2520to%2520Project%2520Portal%253A%250ASource%2520Code%2520Project%2520Path%253A%2520%253CPerforce%2520path%2520with%2520codeline%2520%252F%2520Git%2520Path%253E%250A%250AIf%2520project%2520is%2520using%2520the%2520LeanDI%2520environment%252C%2520code%2520signing%2520is%2520enabled%2520and%2520will%2520remain%2520enabled%2520for%2520All%2520Release%2520builds%253A%2520%253Cyes%2520%252F%2520no%253E%250A%250ATFS%2520(Windows)%250A-----------------%250ATeam%2520Project%2520Collection%253A%250ATeam%2520Project%253A%250AREL%2520Branch%2520Path%253A%250AREL%2520Build%2520Definition%2520Name%253A%250A%250ACode%2520Signing%2520Request%2520Ticket%2520(if%2520applicable)%253A%2520%253CBCP%2520Ticket%2520Number%253E%250A%250AList%2520of%2520build%2520Dependencies%253A%2520%253CNexus%2520artifacts%2520including%2520libraries%253E%250A%250ALink%2520to%2520completed%2520Metaman%2520Entry%2520(for%2520External%2520Stores)%253A%250A%250AContacts%2520%253CUser%2520IDs%253E%250AProduction%2520Project%2520Lead%253A%250AProduct%2520Owner%253A%250AResponsible%2520for%2520Handover%253A%250AResponsible%2520for%2520Technical%2520issues%252Fquestions%253A%250AOthers%253A) or an update ticket as explained [here](https://wiki.wdf.sap.corp/wiki/display/NAAS/Mobile+Patch+Releases) in section "Requesting an update." |
|
| 97 | +For the following to succeed, make sure the commit you're pushing is the only one the Gerrit repository at ``origin`` hasn't seen yet because otherwise you'll have to review all commits starting from the first one unknown to Gerrit so far. |
|
| 98 | + |
|
| 99 | +The change will end up in your [list of Gerrit changes](https://git.wdf.sap.corp/#/dashboard/self). Press the ``Reply`` button located in the middle of the grey bar at the top of the page. You can then vote +2 and +1 for the change and post your review. After a short moment, the blue ``Submit`` button should appear. Press it, and the branch will be merged into ``fa/rel-1.x``. Final Assembly will need to be notified using a BCP ticket, such as a Handover ticket that can be created using [this link](https://support.wdf.sap.corp/sap/bc/dsi/ii/create_zini?sap-language=EN&system_id=BCV&short_description=Handover%20%3cPPMS%20Software%20Component%20Version%3e&priority=3&main_impact=A&category_label=XX-INT-NAAS-MOBILE&incident_description=Requesting%2520Development%2520to%2520Production%2520Handover%2520for%2520the%2520App%253A%250A%253CFull%2520App%2520Name%253E%250A%250AProgram%2520Repository%2520Link%253A%250AProgram%2520Name%253A%250APPMS%2520Software%2520Component%2520Version%2520Name%253A%250APlatform%253A%2520%253CAndroid%2520%252F%2520iOS%2520%252F%2520TFS%2520(Windows)%253E%250A%250AShipment%2520Channel(s)%253A%250A%255B%255D%2520Indirect%2520shipment%2520(promotion%2520to%2520Nexus%2520only)%250A%255B%255D%2520Apple%2520App%2520Store%250A%255B%255D%2520Google%2520Play%250A%255B%255D%2520Google%2520Chrome%2520Store%250A%255B%255D%2520Amazon%2520App%2520Store%250A%255B%255D%2520BlackBerry%2520World%250A%255B%255D%2520Windows%25208%2520Store%250A%255B%255D%2520Windows%2520Phone%2520Store%250A%255B%255D%2520SMP%2520-%2520Binary%250A%255B%255D%2520SMP%2520-%2520Source%2520Code%250A%250AiOS%2520%252F%2520Android%250A----------------%250ALink%2520to%2520Project%2520Portal%253A%250ASource%2520Code%2520Project%2520Path%253A%2520%253CPerforce%2520path%2520with%2520codeline%2520%252F%2520Git%2520Path%253E%250A%250AIf%2520project%2520is%2520using%2520the%2520LeanDI%2520environment%252C%2520code%2520signing%2520is%2520enabled%2520and%2520will%2520remain%2520enabled%2520for%2520All%2520Release%2520builds%253A%2520%253Cyes%2520%252F%2520no%253E%250A%250ATFS%2520(Windows)%250A-----------------%250ATeam%2520Project%2520Collection%253A%250ATeam%2520Project%253A%250AREL%2520Branch%2520Path%253A%250AREL%2520Build%2520Definition%2520Name%253A%250A%250ACode%2520Signing%2520Request%2520Ticket%2520(if%2520applicable)%253A%2520%253CBCP%2520Ticket%2520Number%253E%250A%250AList%2520of%2520build%2520Dependencies%253A%2520%253CNexus%2520artifacts%2520including%2520libraries%253E%250A%250ALink%2520to%2520completed%2520Metaman%2520Entry%2520(for%2520External%2520Stores)%253A%250A%250AContacts%2520%253CUser%2520IDs%253E%250AProduction%2520Project%2520Lead%253A%250AProduct%2520Owner%253A%250AResponsible%2520for%2520Handover%253A%250AResponsible%2520for%2520Technical%2520issues%252Fquestions%253A%250AOthers%253A) or an update ticket as explained [here](https://wiki.wdf.sap.corp/wiki/display/NAAS/Mobile+Patch+Releases) in section "Requesting an update." |
|
| 97 | 100 | |
| 98 | 101 | As a result of handling the request, Final Assembly will trigger builds on [http://dewdfms0059.wdf.sap.corp:8081/job/sapsailingcapture-fa-rel-1.0-fa-rel-1.0-GIT-REL-OD-COMPCOMP/](http://dewdfms0059.wdf.sap.corp:8081/job/sapsailingcapture-fa-rel-1.0-fa-rel-1.0-GIT-REL-OD-COMPCOMP/) and [http://dewdfms0059.wdf.sap.corp:8080/job/sapsailingcapture-fa-rel-1.0-fa-rel-1.0-GIT-REL-OD-COMPENTER/](http://dewdfms0059.wdf.sap.corp:8080/job/sapsailingcapture-fa-rel-1.0-fa-rel-1.0-GIT-REL-OD-COMPENTER/). The latter has links for over-the-air test deployments to SAP-managed iOS devices. |
| 99 | 102 |