Difference between revisions of "Jenkins configuration"
| Line 1: | Line 1: | ||
| + | [[Category:Build Process]] | ||
| + | |||
=Agility on TestCenter tasks= | =Agility on TestCenter tasks= | ||
Revision as of 09:03, 12 April 2017
Agility on TestCenter tasks
On TestCenter there are currently four Agility instances built by Jenkins:
- Agility72
- Agility72Manual
- Agility8
- Agility8Manual
Jenkins configuration tool is located at: //rudy:8088
There are 6 defined tasks for TestCenter systems:
- Agility72Test_DailyBuild - standard Agility 7.2.xx system build every working day at 0-5AM with databases copied from Versus server
- Agility72Test_ManualBuild - Agility 7.2.xx system triggered manually on demand
- Agility72Test_ManualBuild_WithoutDB - Agility system triggered manually on demand without copying databases
- AgilityTrunkTest_DailyBuild - standard Agility Trunk system build every working day at 0-5AM with databases copied from Versus server
- AgilityTrunkTest_ManualBuild - Agility Trunk system triggered manually on demand
- AgilityTrunkTest_ManualBuild_WithoutDB - Agility Trunk system triggered manually on demand without copying databases
Task Configuration
Every task consists of:
1. General information
Here is defined task name and description
2. Code repository
- Repository settings are as follows:
- SCM Type: Subversion
- Repository URL: 'http://cyrus/svn/main/trunk' (or 'http://cyrus/svn/main/branches/7.2' for Agility72 tasks)
- Local module directory: '.'
- Repository depth: 'infinity'
- Ignore externals: checked
- Check-out strategy: 'Use svn update as much as possible'
- Repository browser: 'Automatic'
3. Task trigger
For automatic daily builds (Agility72Test_DailyBuild and AgilityTrunkTest_DailyBuild) Build periodically should be checked and time definition should be set to for example: 'H H(0-5) * * 2-6'
4. Build environment
Inject environment variables to the build process option should be checked
Script File Path should be set according to system version:
- for Agility72: ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\vsvars32.bat""
- for AgilityTrunk: "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat"
5. Build
The build process cosists of several steps:
- Execute Windows batch command: 'c:\utils\nuget restore FastNET\FastNET_2.sln' (restores missing nuget packages)
- Build a Visual Studio project or solution using MSBuild
MSBuild versions are configured in the Jenkins global configuration tools panel. For Agility72 systems MSBuild version should be set to 'MSBuild 11.0', for AgilityTrunk systems it should be 'MSBuild 14.0'.
MSBuild file should be set as: 'FastNet\FastNet_2.sln'
- Execute Windows batch command: sqlcmd -U Release -P fortknox -S TESTCENTER\SQLSERVER2012 -Q "DECLARE @DbFileName varchar(1000) SELECT @DbFileName = (SELECT 'C:\Backups\AgilityTrunkDemo_' + convert(varchar(500),GetDate(),112) + '.bak') BACKUP DATABASE [AgilityTrunkDemo] TO DISK = @DbFileName"
This command backups database from TestCenter and stores it in C:\Backups folder with the date in the name.
- Execute Windows batch command: sqlcmd -U Release -P fortknox -S TESTCENTER\SQLSERVER2012 -Q "DECLARE @DbFileName varchar(1000) SELECT @DbFileName = (SELECT 'C:\Backups\MasterAgilityFNTrunk_' + convert(varchar(500),GetDate(),112) + '.bak') BACKUP DATABASE [MasterAgilityFNTrunk] TO DISK = @DbFileName"
The same operation for fastNet database.
- Execute Windows batch command: sqlcmd -U Release -P fortknox -S VERSUS\SQL2008 -Q "EXEC xp_cmdshell 'net use Z: \\TESTCENTER\Backups fortknox /user:Release' BACKUP DATABASE [AgilityTrunkDemo] TO DISK = 'Z:AgilityTrunkDemo.bak' BACKUP DATABASE [MasterAgilityFNTrunk] TO DISK = 'Z:MasterAgilityFNTrunk.bak' EXEC xp_cmdshell 'net use Z: /delete'"
This command backups developer databases from Versus and stores them in TestCenter C:\Backups folder.
- Execute Windows batch command: sqlcmd -U Release -P fortknox -S TESTCENTER\SQLSERVER2012 -Q "ALTER DATABASE [AgilityTrunkDemo] SET offline WITH rollback immediate RESTORE DATABASE [AgilityTrunkDemo] FROM DISK = 'C:\Backups\AgilityTrunkDemo.bak' ALTER DATABASE [AgilityTrunkDemo] SET online"
This command restores target database on TestCenter server with previously backed up database from Versus server.
- Execute Windows batch command: sqlcmd -U Release -P fortknox -S TESTCENTER\SQLSERVER2012 -Q "ALTER DATABASE [MasterAgilityFNTrunk] SET offline WITH rollback immediate RESTORE DATABASE [MasterAgilityFNTrunk] FROM DISK = 'C:\Backups\MasterAgilityFNTrunk.bak' ALTER DATABASE [MasterAgilityFNTrunk] SET online"
This command restores target fastNet database on TestCenter server with previously backed up database from Versus server.
Tasks without database operations shouldn't execute 5 latter commands.
6. Send build artifacts to a windows share
To enable this function the plugin 'Publish over CIFS' should be installed in Jenkins. Next in Jenkins System Configuration the CIFS share should be configured correctly:
- Name: 'testcenter'
- Hostname: '192.168.1.87'
- Username: 'Release'
- Share: 'DailyBuild'
Back in the task definition:
- CIFS Share Name: 'testcenter'
- Source files: 'FastNET/Web/**'
- Remove prefix: 'FastNET/Web'
- Remote directory: 'Agility8' (or 'Agility8Manual', 'Agility72', 'Agility72Manual')
- Exclude files: '**/web.config'