My company currently uses Bitbucket for our code source control. We currently do not have any system in place to manage our software deployment. Our custom software is currently written in LabVIEW, though we are shifting away from that in the near future to more microcontroller/C++ based systems. Currently, we build the executable version of the software on our development devices. Typically we are deploying software to the computers that run physical robotic system manually, and there are often multiple computers that need to receive the same software update.
As someone who does not know much about software deployment processes:
1. Can we use Pipelines (or a different platform) to build the executable, then update target user computers on an individual basis, and also keep track of different software versions on different computers?
2. Can we roll back software versions easily?
3. Is there a feature request capability?
4. Is there a way to monitor when a user system is active so we can safely terminate the running process, install the updates, then reopen the software?
Appreciate any advice about this software, or any other available software deployment tools!
Hi Rohan and welcome to the community!
I wanted to give you some info regarding Bitbucket Pipelines.
1. Can we use Pipelines (or a different platform) to build the executable, then update target user computers on an individual basis, and also keep track of different software versions on different computers?
Pipelines builds on Atlassian's infrastructure run in Docker containers. If there are command line tools for building your executable, it should be possible to do this in Pipelines with a Docker container where these command line tools are installed.
Pipelines currently run on a Kubernetes cluster of Linux Docker hosts. If your builds require Windows or MacOS to run, it won't be possible to run them on Atlassian's infrastructure (for example, .NET Framework applications require Windows).
You can use one of our self-hosted runners to run Pipelines builds on your own Windows or MacOS machine:
Linux runners are also available.
If it is possible to do update computers from command line, you could connect from Pipelines to each computer, e.g. via SSH, and then run a script that performs the update.
Keeping track of software versions on different computers is something you'd need to do outside Pipelines, there is no such feature available.
2. Can we roll back software versions easily?
If you use a deployment step in Pipelines there is a Redeploy option, so you can redeploy an earlier build. You need to take into account what happens when you try to install an earlier version, in case a newer one is already installed. You might need for example to uninstall existing versions of the software before you install.
3. Is there a feature request capability?
Do you mean for users to create feature requests related to your software?
If a repository belongs to a workspace that is not administered via https://admin.atlassian.com/, it is possible to add an issue tracker to the repository from Repository settings (you need to be a repo admin to enable it). Users can then create feature requests or bug reports in the issue tracker.
This option is not available in newer workspaces that are administered via https://admin.atlassian.com/.
Jira can be used in this case:
4. Is there a way to monitor when a user system is active so we can safely terminate the running process, install the updates, then reopen the software?
I'm not sure what you mean by active. Do you mean if a user is using the software you want to update? You may be able to do that if you can create a script that checks the processes that run on the computer.
Kind regards,
Theodora
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.