Custom VSTS Release task: Packaging and where is my icon - azure-pipelines-build-task

I'm trying to publish an extension for VSTS; a small release task. I'm not planning to publish this publicly, this is just for internal use. I've found quite a few "how to" posts, but they tend to be vague on some topics or even have outdated information. I did get my task out there and it works, but I still have some questions.
1) Packaging your extension:
According to visualstudio.com I need to package my extension into a .vsix file. Can someone explain to me what this does? I didn't do this step as it wasn't part of the first tutorial I found. My task is still up there and functional so I'm just not sure what the purpose of packaging is.
2) Icon questions
Trivial I know, but I can't seem to get my task icon to show up! I have an icon stored in the root of my folder I uploaded and I reference it in my extension manifest, but it won't seem to show up.
"icons": {
"default": "icon.png"
},
"files": [
{
"path": "icon.png", "addressable": false
}
]
Do I need to reference the icon in my task manifest somehow? I haven't seen any references of an icon property in the task.json. Additionally I have seen some sites saying the icon needs to be 32x32 png, but Extension manifest reference says it should be 128x128.

First, I assume you referred to this tutorial, which is obsolete. You need to do with a vsix file that can be uploaded to VSTS.
Secondly, you need to put the icon.png file (32X32) to the root folder of the release task, then the icon file can be recognized. For example: the task’s files are in ReleaseTest folder, then the task.json and icon.png are in the root of ReleaseTest folder.
BTW, the 128X128 icon is used for the extension, you can check extensions on your marketplace site (https://marketplace.visualstudio.com/manage/publishers/[publisher])

Related

Azure DevOps custom extension icon missing

I have built an extension for Azure DevOps following this tutorial:
https://learn.microsoft.com/en-us/azure/devops/extend/develop/add-build-task?view=vsts
Then I upload it to Azure DevOps and share it only with my organization.
The problem is that when I open a build definition and click to add more tasks, the icon for my extension is missing:
click here to view image
I have followed the suggestions in the post below but nothing worked:
Why TFS Build Step Extension Icon Is Missing?
Does anyone have a suggestion?
Thanks,
You need to provide two files with icons, first one in your root folder and second one in the task folder. Also you should remember that icon should be 128x128 px or larger. Here you could see the example of your extension's folder structure:
extensionManifest.json
icon.png
taskFolder
task.json
icon.png
index.js
The tutorial does not mention that there also needs to be an icon named icon.png in the same folder as the task.json file. Also make sure the icon is 32 x 32 px. There is some documentation here: Reference for integrating custom build tasks into extensions

I don't see the Web.Debug.config and Web.Release.config files on my web.config after upgrading my project to VS2012

I just upgraded a Web Site project from VS2010 to VS2012 and I was looking into figuring out how to do what I used to do in the DeploymentPackage projects. There is a lot of good questions and answers I've read through on stackoverflow and I know what to do once I am able to find the files I need. For some reason my web.config doesn't have the two files underneath it (Web.Debug.config and Web.Release.config). I've installed the Web Platform Installer stuff and created my profile. I also created a custom configuration for deployment but I still am unable to see these files get created so that I can start changing some of my web.config settings on deploy time. Does anybody know if there's some setting/trick to get these files to show up in a migrated project?
If you don't see the files web.debug.config or web.release.config beneath the web.config file it could be because they are hidden. In the solution explorer panel if you click "show all files" they should appear.
I found the answer in a post here: how to add files in web.config transformation process?
In your "App Data" folder you'll find your publish profiles you created and can right click on them to add a config transform file.

Distribute MonoTouch app to testers using Organizer?

I am trying to archive my MonoTouch app and to supply it to our testers using Apple's/Xcode's organizer.
Can somebody tell me how to do that? In ObjC projects I can archive an application. But how can I achieve the same in MT/MonoDevelop?
My starting point was this documentation:
http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/145-Distributing_Applications/distributing_applications.html
René
The archive that Xcode provides is in the form of an .ipa file. This is a glorified zip file with a certain expected file structure.
The .ipa is made up of the following components:
A folder named "Payload", which contains the compiled
(release/iPhone) .app
a 57x57 .png icon file (which is displayed while the app is being
downloaded)
a 512x512 .png file of the icon once again - however this has to
renamed itunesartwork with no extension
iTunesMetadata.plist - this contains information about the app,
such as copyright name, genre, itemname, softwareIconNeedsShine (you
can google what information this needs).
The way I package up our .ipa, is I have a folder called "App Packaging" which has all of these components already in, and I simply update the .app file whenever we do an upload, "Compress..." then rename the file to x.ipa (OS X will ask if you want to use this extension, make sure you select ("use .ipa" !).
You can then send the file to the testers to install via itunes. If the testers are all testing on devices that are iOS 4.0+ then it is possible to distribute this over the air as well but I can go into that only if you would like me to?
EDIT - Over the air distribution
It is possible to do over the air distribution of apps as well. We use it for distribution of an enterprise app we develop but it is possible to use it for testing purposes as well. It should be noted here that in order for the app to installed, the device needs to be included in the provisioning profile you signed the app with (but you knew that already!).
In order to do over the air, you need 3 things:
the .ipa file we created earlier.
a 57x57 .png icon file (same as the one included in the .ipa preferably)
a file called "Manifest.plist"
The Manifest plist contains the following structure/information:
You'll then want to upload all of these files to your website/intranet etc. In order to download the app, you'll need to create a page that points to the Manifest.plist file and then then iOS takes care of the rest and downloads the app from the location specified in the manifest.
There is now a much much easier way. On the Project menu in MonoDevelop, choose Publish to TestFlight.
You'll need a free TestFlightApp.com account, but it works great!

MonoTouch Enterprise - Deployment

Our firm has begun building MonoTouch iPad/iPhone apps for enterprise deployment.
How do I take the app and create a *.ipa file for upload to our MDM server?
An .ipa file is basically a glorified .zip file. There are a couple of routes you can go down:
Export the project to xcode and under "Build" click "Build and Archive" - fill in the appropriate details and the project should create the .ipa for you as expected.
If this isn't an option, (which it isnt for us, so this is the method I've used, to great success) you can simply create all the components that go into the .ipa and right-click, "Compress..." in Finder.
The .ipa is made up of the following components:
A folder named "Payload", which contains the compiled (release/iPhone) .app
a 57x57 .png icon file (which is displayed while the app is being downloaded)
a 512x512 .png file of the icon once again - however this has to renamed itunesartwork with no extension
iTunesMetadata.plist - this contains information about the app, such as copyright name, genre, itemname, softwareIconNeedsShine (you can google what information this needs).
The way I package up our .ipa, is I have a folder called "App Packaging" which has all of these components already in, and I simply update the .app file whenever we do an upload, "Compress..." then rename the file to x.ipa (OS X will ask if you want to use this extension, make sure you select ("use .ipa" !).
With the current Monodevelop (2.8.6.5) and Monotouch (5.2.5) it is as easy as right clicking on your project -> options -> iPhone IPA Options -> check Build ad-hoc/enterprise package (IPA) for the desired configuration.
We created a special configuration called Distribution which builds using the Distribution Certificate and In House Distribution Profile.
Luke, I like your answer and have given you the credit. I am adding some more details for my own, and others, notes.
Use SpotLight to find one of your own MonoTouch apps. Search on ".ipa".
Rename it to SomeThing.Zip
Unzip it.
You can then use the structure of the unzipped folder to edit then rezip.
Just another way to get an IPA that made it easy for me, drag your .app file onto your itunes library and sync your device. ITunes then creates a copy of the app as an .ipa file in the user/music/itunes/itunes media/mobile applications. This can then be distributed much easier than the .app file.

Need to change template styles in Liferay

I want to change look and feel of liferay using css. i am very new to liferay. Can any give me any idea to do the changes. Thanks in advance
The step-by-step seems complicated, but it's not that bad .....
1a) download and unpack the plugins sdk for the version of liferay you want to use. All the downloads are on the sf page http://lportal.sourceforge.net/
1b) make sure you have the latest version of ant and the JDK version that matches your liferay version (1.5.x or 1.6.x)
2) there are a few main folders in the kit. Change into the "themes" folder and run the create script there in this format (on linux or mac you'll need to make the .sh files executable)
c:\liferay\plugins\themes >create my-name "My Theme Description"
linux/mac $>./create.sh my-name "My Theme Description"
This will create a skeleton theme in a folder called my-name-theme and a folder within it called _diff.
Make whatever modifications you want WITHIN THE _diff FOLDER. (except changes to the properties file within WEB-INF)
Once you've made changes run "ant compile" from within the my-name-theme folder and the sdk will run through it's paces and spit out a .war file to the "dist" folder in the sdk root. You can upload this to the site using the plugin installer
OR ... if you configure the sdk to know where your development server is you can run "ant deploy" from the theme's folder and let the autodeploy magic in liferay do the work.
Once the theme is installed just assign it using the "look and feel" tab in the "manage pages" tool.
TIP : Make most of your changes to the custom.css file .... keeps things easy to upgrade.
TIP : Development is really slow for CSS if you do this for every change .... so if you're running a dev server add a style tag just before the end of the head tag that points into your _diffs/css folder. href="file:///...../_diffs/custom.css". This way whatever edits you make will be compiled into the next version of the war and will override the currently installed version without reuploading. make sure to remove the link before you put it on a live server.
The liferay.com documentation is great and there's a "themer's guide" i can't find the link to right now that got me started.
We've done a number of LifeRay customizations for various companies but your question is too vague for us to answer. If you are just looking to change a few colours and fonts then editing the CSS is fine, but if you are looking to completely change the layout then you need to delve in to the template files and start working with the XHTML.
Provide more details and we might be able to prod you in the right direction :D
IMO theme development for liferay can be quite slow to start with. I have found two different approach quite useful. It works for me, might work for you as well.
If you edit files inside _diff folder AFAIK you have to deploy every
time two see the changes , which can be quite frustrating for
front-end developers. An approch can be edit the css file directly
in tomcat/themename folder. Copy the changed every couple of hours
or so in the _diff folder and deploy. In my case the CSS stays in
C:\liferay-portal-6.1.0\tomcat-7.0.23\webapps\\css\
Also if you are aware liferay supports Sass now. So it you are writing Sass "deploy" may be you most likely option. But I have also figured out a way to speed up that process. Install ruby (if you are in windows, in Mac its preinstalled) > Install Compass > and create a blank compass project. Start "compass watch" . Open bothe scss file and the compiled css file in your IDE. "compass watch" will poll for changes in your scss file and put the compiled output in the css file. Every while you may copy the css output in the css file in theme folder or directly in firebug or web-inspector in chrome/safari.
I have found these are faster dev practice than deploying everytime or completely developing on firebug/web-inspector.
Also if anyone know of better method, specially things like only CSS/JS deploy (or simple copy for that matter if one is not writing Scss), please let us know.
You can make your custom style with the liferay plugins sdk, which can be found here: http://www.liferay.com/downloads/liferay-portal/additional-files
There is a themes folder included, in which you can create a new theme. Liferay generates here a basic theme as a boilerplate, which then you can customize and deploy to your liferay installation.
You can
mvn archetype:generate
then select “liferay-theme-archetype (Provides an archetype to create Liferay themes.)” et voilà you are ready tu customize your theme.
Best practice recommends that you make all your custom themes using only the custom.css file, and that you not override any of the templates unless absolutely necessary. This will make future upgrades far easier, as you won't have to manually modify your templates to add support for new Liferay features.
Deploy the newly created theme using
mvn clean package liferay:deploy

Resources