Show HTML artifacts in bamboo without downloading - bamboo

I've successfully created a small demo HTML report of test results from a build. Simply put, I'm doing numerical computations, and would like to give more detailed information on test results than a binary pass/fail. The HTML report consists of multiple HTML files with relative links between them.
However, linking to one file from the other sometimes leads to the file being opened in the browser, and sometimes a "download file" dialog opens. Any ideas what the rules are, so I can look at the whole report in-browser without resorting to downloading a zip file of the whole report, unzipping, etc etc?

Just a quick note here, if anyone should need it - as this was where I ended up in my search.
After upgrading our Bamboo to 6.8.1 build 60805 our code coverage artifacts started downloading, instead of being displayed inline.
This can be fixed by setting the Security and permission setting Allow artifacts to be embedded in Bamboo pages.
Be aware of the note about Cross-Site-Scripting vulnerabilities if enabled.

On our project we use this simple solution
1.In Stage configure final task script to copy reports to some folder:
echo "Copy artifact report"
rm -rf ../artifacts
mkdir ../artifacts
cp -r functionalTests/build/html/behat/* ../artifacts/
2.On Artifacts tab edit artifact definition and set Copy pattern to artifacts/**
Then when you navigate to build artifact then folder with reports will be opened in browser

To have an embedded html page in bamboo showing the coverage results, this page has partially helped me to make bamboo cooperate with python coverage:
Troubleshooting
The Clover tab shows the directory listing instead of the HTML report
Please check which artifact handler you use. The Amazon S3 Artifact
Handler serves files on a one-by-one basis, instead of exposing all
files as a static website. To change this, open Configure plan and on
the Miscellaneous tab select the Use custom artifact handler settings
check-box. Then select Server-Local Artifact Handler for shared and
non-shared artifacts and finally re-run the build.
In my setup though "Server-Local Artifact Handler" failed completely, but choosing "Bamboo remote handler" did the job.

Related

Modules not loading in platform

Despite a successful build, no modules will load. The Browse menu is empty (except for Assets) and custom modules in the Configuration menu are missing.
After downloading the most recent build from our repository, I followed all steps in the "Source Code Getting Started" page. It has been a few months since looking at the VC documentation, and it looks like it has been updated. I recall an extra step after creating the Assets virtual folder in IIS that isn't there now. Is there perhaps a step here that is missing since the docs update?
Fwiw, the build deployed in our QA environment is fine. This is the same code, but I am trying to run locally and am having no luck with modules.
Virtual folder for Modules is optional in IIS and this step was skipped in the updated docs. But adjusting permissions in needed: "Open properties for vc-platform\VirtoCommerce.Platform.Web\Modules (create this folder if not exsist) folder and give permission Modify to IIS_IUSRS user group as shown above."

Is there a way to inspect build dir xml-data from bamboo ui

Is there a URL path that bamboo UI exposes which allows you see browser the contents of the build dir ?
All I can see is the url to logs but nothing for the build dir.
Not directly.
You can configure the directory as a job artifact, then it will show up in the UI in the artifacts tab. In this case the URL would be http://myserver/bamboo/browse/MYBUILD/latest/artifact
Alternatively, you can run ls from within your build and see the contents in the build log. If not already so, you can add a script task to your job for the purpose.

Run Dart WebApp on Apache Server

I want to server a Dart application on an Apache server. I added the line
application/dart dart
to the mime.type file in the Apache configuration. Still I get the error
Resource interpreted as Script but transferred with MIME type text/plain: "http://localhost/~d022051/mastermind/web/mm-game.dart".
Another issue is the link to the packages directory. I do not want to have symlinks in the documents directory of the server. Is there a smart way to copy the required packages in the correct version?
This message has nothing to do with Apache.
It's a while that I worked with Apache, but as far as I know you don't need specific settings to serve a Dart client app using Apache. They are just like any other static HTML, CSS, JavaScript, or image files.
You get this message because the entry page (index.html) contains a script tag for a Dart script. After you run pub build there are no Dart scripts (yet) in the build output (this will change when Chrome supports Dart and pub build also generates Dart output).
When the browser finds this (currently redundant) Dart script tag it produces this output. When you want to get rid of this message just remove the script tag from the HTML page in your your_app_package/build/web/index.html file.
EDIT
transformers:
- $dart2js:
'minify': true
commandLineOptions: ['--output-type=dart']
or
commandLineOptions: ['--output-type=dart', '--categories=Server']
I haven't tested if this categories argument has an effect in dart2dart too.
EDIT END
EDIT2
There is also the output type dart-multi which creates one output file per input library.
See https://code.google.com/p/dart/issues/detail?id=21616#c9 for more details.
EDIT2 END
Add the following lines to the pubspec.yaml file of your package (thanks to Günter, who pointed this out):
transformers:
- $dart2js:
'minify': true
commandLineOptions: ['--output-type=dart']
Then run pub build with the option --mode=debug.
This results in a "runnable" Dart application, containing the dart sources and the needed packages. The build directory can then be copied to a location visible to your web server. When loading the corresponding URL in the Dartium browser the application is started.

publish selenium reports from jenkins

I run selenium scripts through maven.Please let me know how to publish selenium reports under post build actions in jenkins.I tried several options
Publish selenium report
publish selenium html report
publish HTML report
publish test ng reports
I tried giving full path from C drive where the surefire reports exist
C:\proj1\target\surefire-reports*.html
it says file *.html doesn't exist
and for html report-it says no report exist
tried giving workspace relative path as well but it provides empty report
In test results folder in excel sheet,I get the report the status of each testcase.But its not published in jenkins.
Could anyone please send me the exact tried out steps to publish reports from jenkins.
Publushing report with the publishHTML reports works with the repository. You should not type the file path
For example, I have on my projects the following as the endpoint for reports.
WebContent/build/Selenium/resultsTests/
Where of course resultsTests is my directory where I publish my reports.
Here is a screenshot of my config
You need to create a folder inside your job/workspace folder.
Example my job folder is C:\Program Files (x86)\Jenkins\jobs\Yahoo\workspace.
I created a folder named results
C:\Program Files (x86)\Jenkins\jobs\Yahoo\workspace\results.
I set Test Report HTMLs as results/.
You can check on the link right below the folder field:
Basedir of the fileset is the workspace root. <--- "The workspace root" is a link to your workspace so you can see your new folder there.
Follow below steps:
install html publisher plugin in your jenkins and restart post done
from your framework copy the path of the folder where reports are getting saved.
Example my path is : D:\workspace\rule\CurrentTestResult
In your Jenkins job, navigate to Post -build actions
In section "HTML directory to archive" give above path
Example : "D:\workspace\rule\CurrentTestResult"
And in index page[s], mention your file name, Or simply add "*.html"
In report title give any desired name
Apply and check

How to have Bamboo artifacts collect a whole folders?

I have one simple plan with one simple job.
Tasks:
Source code checkout
MSBuild
Run tests
Generate test report
In four steps, my utility generates a test report with screenshots. The report contain absolute links to images. (for example: onclick="window.open('./Screenshots/66ef3a03-8b82-4b40-b49d-b0155e273738.png');return false;").
If I open the report on my local machine, the report works fine, but on Bamboo I receive the error "Page Not Found", because Bamboo has not collected "Screenshots" folder.
How can I set up the Artifact Definition to collect folder with files?
P.S. I tried to set the \*.* copy pattern, but Bamboo collected only files (without folders and subfolders)
You just have to give the folder Location, like "build/", for instance, and then, in the Copy Pattern you can put **/*.* That should copy all the files you want.
Please note that:
The location is relative to the build directory. Do not use the absolute path to refer to the location.
Asterisks are not supported for Location. For this field, provide the folder name where the file would be located.
Plus, you can define as many Artifact Definitions as you want.
The best way of doing this is to zip all you artifact together. I created a bash script to do this
cd "toArtifactFolder"
zip -r Artifact .
Then in bamboo project settings you have to edit the Artifact and changed the location to where ever the artifact zip file is
Then in the Copy Pattern just enter the zip file eg Artifact.zip
Bamboo uses the "Ant file copy pattern".
Matching recursively against all files: **/*
This does include almost everything
Unfortunately this does not include dot-files, at least in my test on a linux build agent. I could not find a workaround apart from a second artifact (pattern **/.*) or the creation of an archive.
Matching against all files in any subfolder: */*
This does not include foo/bar/test.xyz
This does include both foo/test.xyz and bar/test.xyz
You can do more advanced matching; e.g. you can use build/**/*.jar to copy all jars from a build directory.
For further info see the docs