There are a number of plugins for Hudson to create coverage, test result, metrics and other reports.
It seems that all of them require you to add extra configuration to your build scripts (or Maven POM) for every project that you want to have the reporting done. For example, if you want to have a FindBugs or a Cobertura report, you need to add the report-generating step to your projects.
Is it really necessary to update every single POM file? That is a lot of repeating oneself, and it requires updating the target project's source repository (where the POM is located).
Is it possible to instead have a setting just within Hudson to enable report generation? It seems that since all you are required to do is enable the respective Maven plugin with its default settings. Cannot this be done externally by Hudson.
This is not possible - the Hudson philosophy is that your build tools should generate the reports. Hudson will pick those up and render them in the UI.
I think this is what sonar is trying to solve. It does generate all kinds of reports (Code coverage/pmd/checkstyle, etc) for your projects without having to add configuration to your projects. This helps a lot to cut down duplication if you have many projects to check.
Related
I've inherited a live SSRS server and have been asked to amend a lot of reports that are on there.
Is there a quick way I can "export" all of the reports/data sources to a local instance so I can develop against it using BIDS?
e.g. Can I copy the ReportServer database from Production?
What else would I need to do?
I'd like to be able to have a Development copy of everything, with DataSources pointing to copies of the production databases but with the same names. Therefore I could re-write the report and re-define any SP's required locally, and then just deploy the new RDL to the server along with the ALTER SP scripts.
Is that possible or even sensible!?
Personally, with the volume you mentioned in the comments (30 RDL's and 3 databases) I wouldn't recommend some automated cloning of the entire Reporting setup from production to local. Instead, I'd suggest the following:
Reports
Go to the web front-end for your reportserver (typically http://yourserver/reports). Find each report, open it, and on the Properties tab click the Edit button. This button does not do what you might expect (edit the report inside the browser), but instead offers you a download of the RDL file. Save all the RDL files in one folder on disk.
With 30 reports manually downloading the reports may take you maybe an hour, max. This will probably beat most automated approaches. And since you should only need to do this step once...
Databases
It's not entirely clear from the question, but if you only have production databases and no DTAP setup yet, now may be a good time to start with that. You could host clones of the 3 production databases on a test server or possibly on your dev environment. Note that the schema's important here (should be the same as production), the data doesn't have to be entirely up to date.
Alternatively you can skip this bit and develop your reports against the production databases, assuming you can create connections from your dev machine to the production databases. Up to you.
Visual Studio / BIDS
This bit has a few parts to it:
Create a new reports project and solution in Visual Studio.
Add the existing RDL files you've downloaded earlier.
Depending on how the reports were set up, you may need to add shared data sources in your project, to get your reports up and running.
After all this, you should be able to preview your reports from Visual Studio (either with data coming from the "cloned" databases, or directly from production).
At this point you should also be able to safely make changes and preview/test them before deploying them.
Be sure to add the solution, reports, etc. to your version control system of choice.
Deployment
Once you've made changes you want to deploy to the reportserver, you have two basic options:
Deploy them using BIDS (see also the deployment properties MSDN page)
Go back to the web front-end, find the report, open the Properties tab again, click the Update button. This allows you to re-upload the RDL file with the changes you've made.
From now on you can just rinse and repeat on making updates and deploying the reports. No need for cloning/exporting the entire SSRS instance to keep things in sync.
We are working at getting our versioning control product to automatically push our SSRS reports to the Test (and then production) SSRS environment. When we promote changes from our development to our QA directory in the versioning control application (Surround SCM), we would like for it to also publish the report to SSRS. (This is the workflow we use for our web applications, and if possible I would like to be consistent).
Now, the directories in SSRS are not "real" directories, at least not as far as I can tell. But is there any way to map a network drive to one of these report directories? And if we do this, and Surround SCM can write changes to that directory, would they then be saved to SSRS?
Sorry in advance if this is a really esoteric question, or if I am missing a really obvious way to do this.
No, you can't directly map SSRS folders to a Windows filesystem. I haven't found a way to make what you describe as easy as I think it should be.
The easiest way to automate the deployment of reports uses of the rs.exe utility. This can execute scripts to deploy or update reports.
Alternatively, you could use the SSRS web services to deploy the reports from .NET code.
We use Linq2Sql and CruiseControl.NET. Visual Studio likes to rebuild the register any layout change on the DBML designer as a change to the DBML. This forces it to regenerate the DataContext.designer.cs and DataContext.layout files. This, in turn, causes spurious conflicts with Subversion when we go to commit.
I would like to svn:ignore the .designer.cs and .layout files to avoid the conflicts, and let our CI server generate them as part of the build process. MSBuild, which works well for building the rest of our project, does not generate the .designer.cs files.
Normally, those files are built upon save of the .DBML within Visual Studio using the custom tool MSLinqToSQLGenerator. I need to be able to do it unattended without running Visual Studio.
How do I do this?
Based mostly on this question, but also this question, this question and my own experience, I don't think it's possible without a lot of ugliness, pain or without converting your LINQ to SQL code generation over to T4 (not appealing, IMO).
I was developing a SSIS project, but accidentaly, I erased it. However I keep a copy of the SSIS package. So my question is, it is posible recover the project using the package? or is someway to read the package content to start over the project?
Thanks
I don't remember there being anything too essential stored in the project files for SSIS projects - you can create a new project and then 'Add Existing Item...' and add the package(s).
#Will gave you the correct solution. Project files are XML files that list which packages are part of a project. You can add an existing package back without any issues. You can even manually add a node if you want by editing the file directly. I use to find this useful before BIDS Helper offered sorting capabilities.
You may also want to implement a version control system if you are working with SSIS. Every once in a blue moon a package gets into a funky, unrecoverable state and we have to rollback to a previous version to get it working again. This happens about 4 times a year for a team of 6 people who work on 100-200 packages. Also, you will never lose a package again even if you erase it on the server and your local copy is wiped out.
I've hit the inevitable state where I have to do a diff on the code within two versions of a SSIS package.
What have you used successfully other than what I'm going to do now by opening up 2 instances of VS and go over it box by box and variable by variable?
Note: The things that are important to compare in my case are:
Variables
Code in Execute SQL Tasks
Order of Tasks
Data Flows
Order of data flow components
Try BIDS Helper. It prepares both versions by normalizing whitespace and splitting long lines before making the comparison. Most changes can be easily recognized.
A Visual Studio extension has been deployed in March 2017 to Visual Studio Marketplace. It is called SSIS Compare and Merge Tool. You can install it using Tools menu than Extensions and updates and search for online extensions or download and install the .VSIX file from Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=TamasTIPost.SSISCompareMergeTool-18170
There are some utilities that will do this:
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.sqlserver.dts&tid=0619e97f-4dd4-4946-bd41-888e751a5d72&cat=en_US_2b8e81a3-be64-42fa-bd81-c6d41de5a219&lang=en&cr=US&sloc=&p=1
ApexSQLDiff
Randy
I use Notepad++ to compare dtsx (xml) files. Some times even write some code to extract components for example to extract all SQL stored in a large SSIS package with dozens of ExecuteSQL tasks.
UPDATE: Just found this Bi xPress. Here is a video explaining how it works
Updated with the latest locations and consolidated the different answers.
There are a number of tools that try to help managing, comparing and merging SSIS and other otherwise difficult to merge file formats favored by SQL Server Analysis Services, Integration Services and reporting services.
Putting SQL code in stored procedures and managing these using SSDT and Git/TFVC is a useful first step. For the more exotic file formats extend your toolbelt with additional tools like:
BI Developer Extensions (formerly BIDS Helper) free!
Apex SQL Diff Pro
Bi xPress
SSIS Compare Merge Tool
Each work slightly differently and the cost varies, but they all apply normalization and visualization to help you understand and potentially merge the differences between these files.
Aside from that, many changes may be possible with enough understanding of the XML using tools like Notepad++ or Araxis Merge. Many merge tools now have have special XML compare/merge capabilities where you can configure how files should be normalized prior to comparison.