geeklearningio / gl-vsts-tasks-azure

Azure Pipelines Tasks that help you build and publish your applications on Microsoft Azure
https://marketplace.visualstudio.com/items?itemName=geeklearningio.gl-vsts-tasks-azure
MIT License
19 stars 7 forks source link

Extension compatibility #9

Open vl787 opened 7 years ago

vl787 commented 7 years ago

We loaded this extension in our on-prem environment (tfs 2015 update 2) but it does not show up. Does this work for on-prem or just VSTS?

asiffermann commented 7 years ago

Hi @UPStroll, and thank you for reporting this issue!

I apologize for my answer's delay, I've been a little bit busy last days...

I'm investigating your issue, which seems to be the same as #10. In fact, I cannot install anymore our extension on a fresh VSTS account neither, so I think it is not related to the TFS compatibility, but rather a regression with the last published version, or a change in the MarketPlace.

I am trying to publish a new version and see what is going on, I'll let you know when I'll find a resolution!

asiffermann commented 7 years ago

We can't figure why #10 is happening now, and I must admit that I would like to see it fixed first before investigating if your issue is on-prem specific or not... I just reported the installation issue to Microsoft, I'll let you know when I'll get an answer!

Sorry for the inconvenience :(

asiffermann commented 7 years ago

I just published a new version on the marketplace that I could install on a fresh VSTS account. Do you mind letting me know if you can install it too on your TFS?

Thank you!

vinimehta commented 7 years ago

Hello,

I also work with UPS Trolls and have tried to install the extension on my TFS, it is still not showing up, could it be due to it being on prem vs VSTS?

asiffermann commented 7 years ago

Hi @vinimehta, and thank you for the update!

There should be no reason for our extension not being installed on On-Prem TFS.

As I do not have a server to test it at the moment, could you give me some extra informations on the behavior? Could you download and then upload it? Or maybe you could even install it on a collection? Do you have any error message or failed HTTP request that could be revealed in your browser's Developer tools?

At the same time, I'll install a VM with an On-Prem TFS and will try to reproduce your issue as soon as possible, but the more information you can provide to me, the faster I could solve this issue :)

vinimehta commented 7 years ago

Hey @asiffermann, so we can go as far as downloading it on my box, uploading it, and installing it. we get no errors! However, when we go on to the task window for build and release and apply the tasks attached to the extension, it does not show up? maybe we miss something in the download and it could be a user error? hope this helps!

Thanks in advance, Vini

asiffermann commented 7 years ago

Thank you for your quick reply :)

Wow, that's a very strange behavior... I am currently downloading a fresh VM with TFS 2015 Update 2 installed on it, this may take a while, I'll update you as soon as possible!

vinimehta commented 7 years ago

Haha, yes! we are not sure why its doing that.

thank you so much :)

vinimehta commented 7 years ago

Hello,

Just wanted to follow up and check if you found anything out about our issue?

sandorfr commented 7 years ago

@vinimehta to help narrow down the issue can you try to install any of our other extension and tell us is the problem remains the same?

vinimehta commented 7 years ago

@sandorfr I downloaded the file patch build and release extension and that seems to be working for us.

Thank you, Vini

sandorfr commented 7 years ago

Thanks @vinimehta looks like this is related to issue #10 which won't be fix anytime soon on premise I guess.

@asiffermann I guess we'll have to remove azcopy task from this extension and spawn a new one :(

vinimehta commented 7 years ago

@sandorfr @asiffermann I don't know if this will help or not, but we tried adding other Azure extensions and those are the ones we are having an issue with?

asiffermann commented 7 years ago

@vinimehta I can reproduce your installation issue on On-Prem TFS... :( What are the other Azure extensions did you try to install?

I'm investigating if it is related to #10 or not trying to install a version of our extension without the AzCopy task.

vinimehta commented 7 years ago

@asiffermann oh gosh. :/ Try checking out this other azure extension: Azure WebApp Configuration task that one is not working for us as well. It seems to be all the Azure extensions. I've tested other ones but I can not remember at the moment. Sorry!!

Hope that helps! Vini

sandorfr commented 7 years ago

This is a random thought, but Maybe an azureRM endpoint / service feature we are using is not yet available on premise?

asiffermann commented 7 years ago

Yes, it's an interesting lead! It could be related to agents capabilities too. @vinimehta, do you have at least one build agent with the azureps capability configured for your TFS?

vinimehta commented 7 years ago

as far as I know, nope. we have created build with Azure related tasks thought. But I don't think we have especially configured an agent with Azurereps.

vinimehta commented 7 years ago

One more development: just noticed that one of the tasks is showing up. its the Azure copy file. the rest of the tasks are still not showing up.

asiffermann commented 7 years ago

Quick follow up, it seems to be related to the build agent version.

We are using the PowerShell3 executer, which is only available starting at version 1.97 (see https://github.com/Microsoft/vsts-tasks/issues/2473)

I'm not sure if this version of build agent can be registered for an On-Prem TFS 2015 Update 2, but I'm on it and will update you asap.

asiffermann commented 7 years ago

The only path I see for now to resolve our tasks' compatibility with older build agents is to rewrite it for the Node executer. That could rely on the Azure SDK for Node, but due to the fact that npm dependencies must be included in the extension for now, we could have issues with the size and the number of files for our extension (see #10). It is definitely worth it, but as it is a challenging and big work, I honestly don't know when we can resolve it...

In the meanwhile, we should enhance tasks' documentation to include the minimum agent version number to clarify which task will be available. It is at the moment visible in each task.json file (1.103.0), but does not take into account the PowerShell3 executer availability.

By the way, which task in particular were you interested in? Maybe I can help you to extract the Powershell scripts that you could include in your projects and execute thanks to the Azure Powershell task?

sandorfr commented 7 years ago

I'm already bringing all the common azure libraries to the kitchen with the azcopy task, hence this should be that much of an overhead adding the missing arm libraries.

That said, we should first make sure Microsoft has definitely fixed the extension size issue. Last time we've heard about it they had a partial workaround and were advising to reduce our extension size by discontinuing our azcopy task (which is not an acceptable solution).

asiffermann commented 7 years ago

Nope, the dependencies must be packaged for each task, so having them in the AzCopy task does not change anything, unfortunately :(

sandorfr commented 7 years ago

It depends if the issue comes from the zip size. Duplicated files should bring little to no overhead to its size. We should try to publish a dummy extension just to see and investigate how to fix it if need be with MSFT.

They might have been questioning the justification of the size of our extension in the past, but I think that compatibility with former agents and xplat support are not a questionable use case. I read more and more story about people using linux agents to build aspnet core apps these days.

asiffermann commented 7 years ago

The installation issue came not really from the extension size itself, but from the number of files in it. For all tasks, we are going to multiply the number of files by 6.

We could just try to add the necessary dependencies (without migrating for now) and to publish our dev extension, but I'm not confident at all...

I wonder if it won't be a better way not to rely on the Node SDK, but just call the REST APIs directly.

sandorfr commented 7 years ago

Not a big fan of the last option. I think we should pursue the discussion we started with them. This is in the DNA of Node to bring dozens of small packages together, so they should support it.

vinimehta commented 7 years ago

Hey all,

We did want to focus on getting all the tasks that focused on the web.config values. So is there a way to just download then upload each task one by one? or did I miss read what you had written?

sandorfr commented 7 years ago

Hi @vinimehta,

The thing is, that would not change the version of your build agents. From what we have read, on premise version of TFS are stuck with their bundled agent version (except on mac). Sadly, older versions do not support Powershell3 executor.

TFS2017 is coming and switches to the latest xplat agent, but I guess very few people will migrate until the first Service Pack.

The discussion we were having is about dropping powershell in favor of node (which is not a small task). node would work this TFS2015 update 2. The thing is, we know that there is a bug affecting extensions with a large number of files, so we are questioning the rationality of doing that.

I hope this clears the picture.

Though, I have a question regarding what you asked: the tasks that focused on the web.config values : What do you mean by that? I don't think we have anything which handles web.config in this extension.

If you are looking for a way to edit your web.config values prior packaging and deploying, our File Patch extension might be what you are looking for.

vinimehta commented 7 years ago

Hi @sandorfr

I have installed the file patch extension and will tell the that it will enable then to edit the web.config.

as for the tasks the user is most interested in @asiffermann , they expressed interest in the Web App: Slots Swap, https://marketplace.visualstudio.com/items?itemName=geeklearningio.gl-vsts-tasks-azure Start and Stop)

Thank you for all your help!