Incompatible runner: OctopusDeploy: Create release

#1

Hello team!
I am trying to have a “create an octopus release” with my linux build server (Debian 9 stretch). I am running into this “incompatible runner” problem. I have checked this issue: Incompatible runner: OctopusDeploy But it was some time ago, so I’m not sure it’s still the same workaround (and now, Octopus release is at v.3).
I am quite new to Linux servers, so I did:
wget https://download.octopusdeploy.com/octopus-teamcity/4.15.9/Octopus.TeamCity.zip
unzip Octopus.Teamcity.zip
/sbin/shutdown -r now

I can see some more folders (as agent, server), files (as teamcity-plugin.xml)… I might be missing a step in the installing, but I am unsure what?
I have .Net Core 2.1 installed. the builds have been working fine.

Thanks for the help!

(Matt Richardson) #3

Hi there

Thanks for getting in touch!

I setup a Debian9 instance and installed the plugin… and it worked as expected, so I suspect there’s something different in how we’ve both set things up.

I think the issue might be with how you’ve installed the plugin - the best way is to upload the zip file via the UI under Administration -> Plugin List -> Upload plugin zip. You can read more here on the teamcity documentation - https://confluence.jetbrains.com/display/TCD18/Installing+Additional+Plugins.

Give that a go, and let me know how you get along.

Cheers,
Matt

#4

Hello again,
Sorry to re-contact you, but I just can’t seem to do it…

We now have this in our Plugin List, it’s been updated :

Octopus Deploy integration
Allows Octopus Deploy deployments to be triggered after a build.
5.1.6

But I still am unable to create a release from TeamCity to Octopus…
Could you tell me what is different with how you do it? Or a step by step? Thanks a lot!

(Matt Richardson) #5

HI there

It seems I misread your initial post - I thought your TeamCity build server was Debian - but it appears to be the build agent instead.

That said, I dont think that should be the problem.

On your teamcity build agent, you dont need to manually put files there - TeamCity will automatically transfer the plugin from the server and install it on the plugin.

Can you share some screenshots of how you have configured the step? Also some screenshots of where you’re seeing the error?

As for the steps I followed:

  1. I spun up a new debian9 machine
  2. installed openjdk-8-jdk (required for teamcity)
  3. downloaded teamcity from https://www.jetbrains.com/teamcity/download/
  4. extracted the zip
  5. ran runAll.sh start to start the server and agent
  6. went through all the teamcity configuration steps
  7. once the server was up and running, I downloaded the plugin from the octopus website, and uploaded it to teamcity via Configuration -> Plugins List -> Upload plugin zip, and restarted.
  8. I then added a step OctopusDeploy: Deploy release to deploy a release, pointing at our octopus server, and ran the build

Hope this provides some insight.

Look forward to seeing your screenshots so I can help diagnose whats happening.

Regards,
Matt

#6

Hello again,

Indeed, the Debian is a build agent. We installed it a couple of months ago and it has been able to run builds for docker and push the images.

Following your steps:
We have openjdk-8-jdk on the server.
It is a build agent correctly installed.
We have downloaded the plugin Teamcity from Octopus/Jetbrains and uploaded the plugin zip. Does the computer/server installing the plugin matters…?


I add the step OctopusDeploy: Deploy release.

Right now, here is the error I am getting: (from the agent logs)

[2019-05-10 10:58:55,712] INFO - jetbrains.buildServer.AGENT - Octopus can not run on agent with Unix and without Octo.exe or DotNET

When I run dotnet --version on the server, it does returns 2.1.603. which should mean it is correctly installed.

I am very sorry that this issue is taking so long. We just can’t seem to figure out what is wrong.

(Matt Richardson) #7

Hi there

Hmmm. This is a interesting one. I’ve reached out internally to the team who know a lot more about the teamcity plugin, and they’ve let me know the message you’re seeing is coming from this line of code.

It looks like its having trouble finding either octo.exe or dotnet on the path.

Can you try running a straight command line step with dotnet, and let me know what it outputs?

If it comes up with something equivalent to “cant find command dotnet” then it means that the dotnet cant be found on the PATH that is used by user that is running the teamcity agent.

Let me know how you get along.

Cheers,
Matt

#8

Yes, we found this line of code as well when we looked for the exact same message.

I have run dotnet, and it returns

Usage dotnet options
Usage dotnet path-to-application
etc

DOTNET_ROOT is set as /home/teamcity/dotnet

When I do dotnet --version, it returns 2.1.603

So it seems like dotnet would be fine, is Octo.exe the problem? Is Octo.exe the plugin?

(Matt Richardson) #9

Hi there

Did you run that from the command line on the build agent or from a command line runner in TeamCity?

The plugin works by either using the local copy of octo.exe, which is a cli tool for interacting with Octopus. If it can’t find that, it will try and use an embedded version, and use the dotnet command line to run it.

You can find octo.exe on our website - https://octopus.com/downloads. You might want to try and put that somewhere on the box and make sure that’s in the path.

Let me know how you get along.

Cheers,

Matt

Cheers,

Matt

#10

dotnet command was run directly on the Debian server itself.

All right, I will download Octo.exe (the command line I can see) and see how it goes.

Thanks

(Matt Richardson) #11

Hi there

Can you try running the dotnet command from a command line runner in TeamCity. I suspect it won’t run, which will point to the path not being set correctly.

Once done, can you send through the log?

Cheers,

Matt

Cheers,

Matt

#12

Hello,

You were right.

in directory: /home/teamcity/BuildAgent/work/2707fb6be1841652
dotnet: not found
Process exited with code 127
Process exited with code 127 (Step: Command Line)

I have as well tried to download the Octopus cli :

dotnet tool install octopus.DoNet.Cli --tool-path /home/teamcity --version 5.2.0
error NU1101: Unable to find package ocotpus.dotnet.cli. No package exist with this id in sources: /home/teamcity/dotnet/sdk/NuGetFallbackFolder, nuget.ord
The tool package could not be restored

By the way, so we have DOTNET_HOME (previously tried with DOTNET_ROOT), and /home/teamcity/dotnet in the path, teamcity doesn’t pick up these parts in the UI of the environment variables.
PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
On the Debian server: PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/teamcity/dotnet

We have tried as well in a Command line step to return Env, and it doesn’t return what we can see on the Debian Server neither.

Thanks!

#13

Okay so, finally found a way to pick up dotnet, and so the Octopus plugin.

For a weird reason, .net core 2.1 has problems. It is actually not the first time we have problems with this version, have no idea why.
I updated to 2.2 with this command
sudo apt-get install dotnet-sdk-2.2
It updated itself, rebooted the servers and now it’s working.

Oh well. This has been a ride! Thanks for all your help!

(Matt Richardson) #14

Hi there

Glad to hear that you got to a solution - sorry it took so long to get there.

Happy deployments!

Cheers,
Matt