Release Process: Difference between revisions

From EPOD
No edit summary
(Added rollback section)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
== .NET ==
== .NET ==
*Check in any outstanding changes.
*Update to make sure you have the latest programs for all projects.
*Update the version numbers in the AssemblyInfo.cs file(s).
**If releasing the admin client the versions in the four projects (ePOD_AutoExport, ePOD_WebApp, ePOD_WebServices and EPODServer) need not be kept the same.
**If releasing the pda client the versions in the two projects (ePODClient and ePODClientUpdater) can be different.
*Copy the release template folder <pre>P:\EPOD\_Installers\Releases In Progress\EPOD_UPYYMMDD_Template</pre> to create a release directory.
*Rename the release directory replacing YYMMDD with the date the release is being performed.
*Any SQL changes should be placed within the Release folder, in files UPYYYYMMDD MSSQL.SQL and UPYYYYMMDD MYSQL.SQL
*The Full Database creation scripts should also be maintained and created in the Full DB subfolder.
*Enter any required release notes in the UPYYMMDD Release Notes.txt file in the Release directory.
*Zip up the folder to UPYYMMDD.zip and store in Releases folder
*Label all the Sourcesafe projects affected with a label of UPYYMMDD. Set the text to the list of changes from the release notes.


=== Build a Full Release ===
DevOps
* Complete all changes in branches and create all pull requests.
* Complete all pull requests into DEV
* Create a pull request from DEV to QA
* Complete the pull request from DEV to QA.


===Releasing Web_App===
From Visual Studio
*Use the publish option against the ePOD_WebApp project (right click project and select publish or select publish ePOD_WebApp option in the Build menu).
* From Team Explorer
**Set the Publish method to File System.
** Switch to QA Branch
**Set the Target Location to the Admin folder within the release directory (e.g. P:\EPOD\_Development\_Releases\ePOD Admin V1.32.7\Admin).
** From Sync tab, fetch and pull all changes into local QA branch.
*In folder used for the publish delete the web.config file (if present).
* Update AssemblyInfo to next version
*In folder used for the publish go into the WebServices\Calidus_ePOD\PDAUpdates subdirectory and update the UpdatesInfo.xml file (if present).
** Open an assemblyInfo file.
*To release copy the contents of the folder used for the publish to the application folder on the target machine, overwriting any existing files. Do not delete any files (the web.config is not released and the contents of the PDAUpdates folder created by a PDA release).
** Global Replace the version with the next version throughout the solution
** Note: If also releasing Android, may also need to update UpdatesInfo.xml in WebApp project, \WebServices\Calidus_ePOD\PDAUpdates folder.
* From Team Explorer
** Stage and commit these changes with commit description "Version 4.x.y.z"
** Sync and Push these changes.
 
From DevOps:
* Tag this commit in QA branch as tag "4.x.y.x" with appropriate description
 
From Visual Studio
* From Solution Explorer:
** Rebuild Solution
** Rebuild all others including import and export
** Right-click WebApp and choose Publish
** Set the Target location as a local folder (re: Publish folder).
** Click Publish.
** Note: There are sometimes issues with AjaxControlToolkit.pdb. If this is the case when publishing, copy the file from a prior release into your WebApp/bin folder and try to publish again.
** Open Publish folder in File Explorer.
* From Publish Folder:
** Delete web.config
** Delete Images/Sites folder
 
From a local release folder:
* Copy a previous Release folder and rename with the version i.e. EPOD_4.x.y.z (re: Release folder)
* Empty web from Release folder.
* Copy all folders from Publish folder to Release/web folder
* Empty app from Release folder.
* Copy all folders and files from Publish folder to Release/app folder
* Create Auto_Import and Auto_Export folder in Release/app folder
* From Visual Studio, explore the Auto_Import project in File Explorer.
* From this file explorer, go to bin, go to Debug or Release (depending on how you published), and copy all contents to Release/app/Auto_Import folder.
* From Release/app/Auto_Import, delete app config file.
* From Visual Studio, explore the ePOD_AutoExport project in File Explorer.
* From this file explorer, go to bin, go to Debug or Release (depending on how you published), and copy all contents to Release/app/Auto_Export folder.
* From Release/app/Auto_Export, delete app config file.
* From Visual Studio, explore the Epod_Configuration project in File Explorer.
* From this file explorer, go to 4.x.0.0 folder and copy all contents to Release/Epod_Configuration folder.
* From Visual Studio, explore the EPOD_DatabaseScriptsLibrary project in File Explorer.
* From this file explorer, go to bin/Debug folder and copy all contents to Release/EPOD_DatabaseScriptsLibrary folder.
* From folder above release folder, create a zip of the release folder i.e. EPOD_4.x.y.z.zip
* Copy release zip to \\DGA1FS01OBS\Projects\Releases\EPOD\Server\Releases.
* Create release notes in \\DGA1FS01OBS\Projects\Releases\EPOD\Release Notes\ePOD Admin\1. Mainline
 
 
===Releasing a Full Release ===
Note: There may be multiple app and web boxes - this release needs to be completed to both boxes, although the database scripts need be run only once. This process will show releases to App and Web boxes. For a single release, follow the App box release procedure.
 
If the servers are accessible through a jump box:
* Log on to the jump box.
* Copy the release zip to the jump box.
* Use this jump box as the source from this point
 
App box release:
* Log on to the App server.
* Stop the Auto_Import and Auto_Export scheduled processes using the Task Scheduler if they are running on this machine.
* Copy the release zip to the app box, C:\_INSTALL_FILES
* Use File Explorer to go to C:\_INSTALL_EPOD
* Copy the last release script for that customer or latest version of release script to new release script for that customer and version. e.g. Deploy_Customer_4.5.1.19_BRC_TST.bat
* Edit the release script
** Change the parameters in the script e.g.
SET "__BuildVer=EPOD_4.5.1.19"
SET "__CustomerCode=BRC"
SET "__Environment=TST"
SET "__CustomerName="BRC"
** Save the changes
* Right-click the script and run as administrator.
* Follow instructions in command window
* A new command window will open with the database scripts library script
* Press Return to install general scripts
* Press Return to install client specific scripts
* Note any errors with the scripts and resolve later.
* Exit database scripts library script command window
* Finish the Release script command window prompts and close that window.
* Check and update any app or web config files with new required settings for all apps released.
* Restart the Auto_Import and Auto_Export scheduled processes using the Task Scheduler if they are running on this machine.
 
From Database Server:
* Check the release scripts have worked successfully by checking the database Schema_Versions table.
* Resolve and script issues. Note that any fixes must be checked into the solution and the release updated.
 
Web Box release:
* Log on to the Web server.
* Stop the Auto_Import and Auto_Export scheduled processes using the Task Scheduler if they are running on this machine.
* Copy the release zip to the web box, C:\_INSTALL_FILES
* Use File Explorer to go to C:\_INSTALL_EPOD
* Copy the last release script for that customer or latest version of release script to new release script for that customer and version.
* Edit the release script
** Change the release version.
** Ensure customer and TST/PRD are set properly.
** Save the changes
* Right-click the script and run as administrator.
* Follow instructions in command window
* A new command window will open with the database scripts library script - close it.
* Finish the Release script command window prompts and close that window.
* Check and update any app or web config files with new required settings for all apps released.
* Restart the Auto_Import and Auto_Export scheduled processes using the Task Scheduler if they are running on this machine.
 
Update the release register \\DGA1FS01OBS\Projects\Releases\EPOD\Release Logs\Release Register - Master.xls
 
 
=== Correcting Script Issues ===
* Use DEV branch
* Find and fix the issues in script
* Stage and commit the changes
* Follow the steps above in section [[#Build a Full Release|Build a Full Release]]
* Note that build versions need not be updated again, and tagged release should be appended with a annotation that this is a rebuild e.g. "4.05.01.19.R1" or "4.05.01.19.C1"
 
 
=== Rolling back a release ===
When following a full release procedure, a backup of the previous application and web installs is made. There is no automated process for re-installing this - simply copy the backup back over the app and web directories to roll back the release.
 
{{Warning}} This does not rollback database changes - these must be completed manually.




Line 28: Line 133:
**To build right click the project and select Build.
**To build right click the project and select Build.
**The ePODClientInstaller and ePODUpdateInstaller projects must be built before the ePODClientInstallerComplete
**The ePODClientInstaller and ePODUpdateInstaller projects must be built before the ePODClientInstallerComplete
*Copy the three cab files from your local ePOD_AutoExport\bin\Release folder (e.g. C:\Projects\EPOD\ePOD_WebApp\ePOD_AutoExport\bin\Release) to the PDA folder within the release directory (e.g. P:\EPOD\_Development\_Releases\ePOD PDA V1.31.1.9\PDA).
*Copy the three cab files from your local ePOD_AutoExport\bin\Release folder (e.g. C:\Projects\EPOD\ePOD_WebApp\ePOD_AutoExport\bin\Release) to the PDA folder within the release directory (e.g. P:\Releases\EPOD\Server\ePOD PDA V1.31.1.9\PDA).
*To release:
*To release:
**Copy the three cab files from the release PDA directory to the PDAUpdates directory on the target machine. This direcotry is below the Admin web application directory in the WebServices\Calidus_ePOD subdirectory.
**Copy the three cab files from the release PDA directory to the PDAUpdates directory on the target machine. This directory is below the Admin web application directory in the WebServices\Calidus_ePOD subdirectory.
**In the same PDAUpdates directory update the version numbers in the UpdatesInfo.xml file. Example:
**In the same PDAUpdates directory update the version numbers in the UpdatesInfo.xml file. Example:
  <?xml version="1.0" encoding="utf-8" ?>
  <?xml version="1.0" encoding="utf-8" ?>

Latest revision as of 18:03, 23 December 2022

.NET

Build a Full Release

DevOps

  • Complete all changes in branches and create all pull requests.
  • Complete all pull requests into DEV
  • Create a pull request from DEV to QA
  • Complete the pull request from DEV to QA.

From Visual Studio

  • From Team Explorer
    • Switch to QA Branch
    • From Sync tab, fetch and pull all changes into local QA branch.
  • Update AssemblyInfo to next version
    • Open an assemblyInfo file.
    • Global Replace the version with the next version throughout the solution
    • Note: If also releasing Android, may also need to update UpdatesInfo.xml in WebApp project, \WebServices\Calidus_ePOD\PDAUpdates folder.
  • From Team Explorer
    • Stage and commit these changes with commit description "Version 4.x.y.z"
    • Sync and Push these changes.

From DevOps:

  • Tag this commit in QA branch as tag "4.x.y.x" with appropriate description

From Visual Studio

  • From Solution Explorer:
    • Rebuild Solution
    • Rebuild all others including import and export
    • Right-click WebApp and choose Publish
    • Set the Target location as a local folder (re: Publish folder).
    • Click Publish.
    • Note: There are sometimes issues with AjaxControlToolkit.pdb. If this is the case when publishing, copy the file from a prior release into your WebApp/bin folder and try to publish again.
    • Open Publish folder in File Explorer.
  • From Publish Folder:
    • Delete web.config
    • Delete Images/Sites folder

From a local release folder:

  • Copy a previous Release folder and rename with the version i.e. EPOD_4.x.y.z (re: Release folder)
  • Empty web from Release folder.
  • Copy all folders from Publish folder to Release/web folder
  • Empty app from Release folder.
  • Copy all folders and files from Publish folder to Release/app folder
  • Create Auto_Import and Auto_Export folder in Release/app folder
  • From Visual Studio, explore the Auto_Import project in File Explorer.
  • From this file explorer, go to bin, go to Debug or Release (depending on how you published), and copy all contents to Release/app/Auto_Import folder.
  • From Release/app/Auto_Import, delete app config file.
  • From Visual Studio, explore the ePOD_AutoExport project in File Explorer.
  • From this file explorer, go to bin, go to Debug or Release (depending on how you published), and copy all contents to Release/app/Auto_Export folder.
  • From Release/app/Auto_Export, delete app config file.
  • From Visual Studio, explore the Epod_Configuration project in File Explorer.
  • From this file explorer, go to 4.x.0.0 folder and copy all contents to Release/Epod_Configuration folder.
  • From Visual Studio, explore the EPOD_DatabaseScriptsLibrary project in File Explorer.
  • From this file explorer, go to bin/Debug folder and copy all contents to Release/EPOD_DatabaseScriptsLibrary folder.
  • From folder above release folder, create a zip of the release folder i.e. EPOD_4.x.y.z.zip
  • Copy release zip to \\DGA1FS01OBS\Projects\Releases\EPOD\Server\Releases.
  • Create release notes in \\DGA1FS01OBS\Projects\Releases\EPOD\Release Notes\ePOD Admin\1. Mainline


Releasing a Full Release

Note: There may be multiple app and web boxes - this release needs to be completed to both boxes, although the database scripts need be run only once. This process will show releases to App and Web boxes. For a single release, follow the App box release procedure.

If the servers are accessible through a jump box:

  • Log on to the jump box.
  • Copy the release zip to the jump box.
  • Use this jump box as the source from this point

App box release:

  • Log on to the App server.
  • Stop the Auto_Import and Auto_Export scheduled processes using the Task Scheduler if they are running on this machine.
  • Copy the release zip to the app box, C:\_INSTALL_FILES
  • Use File Explorer to go to C:\_INSTALL_EPOD
  • Copy the last release script for that customer or latest version of release script to new release script for that customer and version. e.g. Deploy_Customer_4.5.1.19_BRC_TST.bat
  • Edit the release script
    • Change the parameters in the script e.g.
SET "__BuildVer=EPOD_4.5.1.19"
SET "__CustomerCode=BRC"
SET "__Environment=TST"
SET "__CustomerName="BRC"
    • Save the changes
  • Right-click the script and run as administrator.
  • Follow instructions in command window
  • A new command window will open with the database scripts library script
  • Press Return to install general scripts
  • Press Return to install client specific scripts
  • Note any errors with the scripts and resolve later.
  • Exit database scripts library script command window
  • Finish the Release script command window prompts and close that window.
  • Check and update any app or web config files with new required settings for all apps released.
  • Restart the Auto_Import and Auto_Export scheduled processes using the Task Scheduler if they are running on this machine.

From Database Server:

  • Check the release scripts have worked successfully by checking the database Schema_Versions table.
  • Resolve and script issues. Note that any fixes must be checked into the solution and the release updated.

Web Box release:

  • Log on to the Web server.
  • Stop the Auto_Import and Auto_Export scheduled processes using the Task Scheduler if they are running on this machine.
  • Copy the release zip to the web box, C:\_INSTALL_FILES
  • Use File Explorer to go to C:\_INSTALL_EPOD
  • Copy the last release script for that customer or latest version of release script to new release script for that customer and version.
  • Edit the release script
    • Change the release version.
    • Ensure customer and TST/PRD are set properly.
    • Save the changes
  • Right-click the script and run as administrator.
  • Follow instructions in command window
  • A new command window will open with the database scripts library script - close it.
  • Finish the Release script command window prompts and close that window.
  • Check and update any app or web config files with new required settings for all apps released.
  • Restart the Auto_Import and Auto_Export scheduled processes using the Task Scheduler if they are running on this machine.

Update the release register \\DGA1FS01OBS\Projects\Releases\EPOD\Release Logs\Release Register - Master.xls


Correcting Script Issues

  • Use DEV branch
  • Find and fix the issues in script
  • Stage and commit the changes
  • Follow the steps above in section Build a Full Release
  • Note that build versions need not be updated again, and tagged release should be appended with a annotation that this is a rebuild e.g. "4.05.01.19.R1" or "4.05.01.19.C1"


Rolling back a release

When following a full release procedure, a backup of the previous application and web installs is made. There is no automated process for re-installing this - simply copy the backup back over the app and web directories to roll back the release.

Warning Warning: This does not rollback database changes - these must be completed manually.


Windows Mobile: Releasing PDA

  • Set the Debug/Rlease drop-down to Release.
  • Build the ePODClientInstaller, ePODUpdateInstaller and ePODClientInstallerComplete projects.
    • To build right click the project and select Build.
    • The ePODClientInstaller and ePODUpdateInstaller projects must be built before the ePODClientInstallerComplete
  • Copy the three cab files from your local ePOD_AutoExport\bin\Release folder (e.g. C:\Projects\EPOD\ePOD_WebApp\ePOD_AutoExport\bin\Release) to the PDA folder within the release directory (e.g. P:\Releases\EPOD\Server\ePOD PDA V1.31.1.9\PDA).
  • To release:
    • Copy the three cab files from the release PDA directory to the PDAUpdates directory on the target machine. This directory is below the Admin web application directory in the WebServices\Calidus_ePOD subdirectory.
    • In the same PDAUpdates directory update the version numbers in the UpdatesInfo.xml file. Example:
<?xml version="1.0" encoding="utf-8" ?>
<UPDATES>
 <EPOD_CLIENT version="1.30.0.0" 
     url="http://my.url.com:9093/WebServices/Calidus_ePOD/PDAUpdates/EPODClientInstaller.CAB" 
     required="Y" />
 <EPOD_CLIENT_ANDROID version="3.00.02.09" 
     url="http://my.url.com:40462/WebServices/Calidus_ePOD/PDAUpdates/CALIDUSePODv3.apk" 
     required="Y" />
 <EPOD_UPDATER version="1.26.2.0" 
     url="http://my.url.com:9093/WebServices/Calidus_ePOD/PDAUpdates/ePODUpdaterInstall.CAB" 
     required="Y" />
</UPDATES>


AutoExport/AutoImport

  • Using visual studio get the latest version of the AutoExport or AutoImport processes.
  • Use the publish option.
  • Copy the contents of the build folder typically (Project\Release) to your release folder


  • At this point this should be deployed to Dev and Test.

Android: Android

PDA Client

Official releases for Android are through the Google Play market.

Google Play

Once the APK is built:

  • Open Google developer site (https://play.google.com/apps/publish/v2/?dev_acc=06502315555851208789) and log in with the provided user and password.
  • Choose the CALIDUS ePOD application by clicking on it.
  • Click APK on the menu, and Upload New APK.
  • Drag the new version of the APK into the provided box.
  • When uploaded, click Publish Now.
  • Click Store Listing on the menu.
  • Add recent changes. This should be extracted from the latest entry in CHANGELOG.txt.
  • Click Save and Publish

Note Note: In the future it may be that each client will have its own version of the application on the market. If that is the case, ensure that the correct version is built and updated.


Hosted File

To host the file properly, this requires IIS to be updated as follows:

  • Start IIS Manager on the server
  • Find the hosted EPOD web site (or change top-level default)
  • Edit MIME Types
  • Add a new one, ".apk", type "application/vnd.android.package-archive".

Once the app is built, drop the app file in your_app_folder\webservices\calidus_epod\PDAUpdates\

Update the UpdatesInfo.xml file as follows:

<?xml version="1.0" encoding="utf-8" ?>
<UPDATES>
 <EPOD_CLIENT version="1.30.0.0" 
     url="http://my.url.com:9093/WebServices/Calidus_ePOD/PDAUpdates/EPODClientInstaller.CAB" 
     required="Y" />
 <EPOD_CLIENT_ANDROID version="3.00.02.09" 
     url="http://my.url.com:40462/WebServices/Calidus_ePOD/PDAUpdates/CALIDUSePODv3.apk" 
     required="Y" />
 <EPOD_UPDATER version="1.26.2.0" 
     url="http://my.url.com:9093/WebServices/Calidus_ePOD/PDAUpdates/ePODUpdaterInstall.CAB" 
     required="Y" />
</UPDATES>

Attributes:

  • version - your build version, without any leading or trailing characters
  • url - the url of where this installer may be accessed
  • required - if this is a critical bug fix, set this to "Y", else "N"

Note Note: Case is important!

Access to this APK is then through the url: http://your.url.com/webservices/calidus_epod/PDAUpdates/your.apk


Documentation

Note Note: This section is not intended as a replacement for standard procedures, but instead a reminder of the responsibilities for releasers.

  • Once programs have been packaged and released to the customer's test system, the affected Supimix Logs should be updated to reflect this - their status and sub status should be changed, the Patch number should be updated with the patch version and a comment added e.g. "Release to customer test system in patch 123456/version 1.2.3".
  • Once programs have been packaged and released to the customer's live system, the affected Supimix Logs should be updated to reflect this - their status and sub status should be changed and a comment added e.g. "Release to customer live system in patch 123456/version 1.2.3". This comment should contain enough detail for a project resource to find the release notes in the release area or source control.

Note Note: If multiple programs are being updated on the same log, this may result in multiple releases (i.e. a Device Client release and a Server release). As both can't be held in the patch number, the Server release should take precedence and the device client version number referenced in those release notes and in the Supimix comment.