"Distribution" based environments in GitLab CI/CD

Hi everyone! I’m a developer at a company who’s currently modernizing their development/QA processes and moving to git from TFVC for our development team. I’m the developer in charge of setting up our new processes and in charge of migrating us over within the next couple of months. We’re currently planning on using GitLab to host our repositories and automate the publishing/deployment of our product.

Regarding deployments, our product is an executable that we directly distribute to customers, which they run on their machines. Our “deployment” process really just involves moving built executable files to a network location, which is then picked up and distributed to customers.

Deployments in GitLab appear to be more for things like web applications and clusters of applications (given there’s a “Stop” button and running/stopped environments). However, we’d still love to simply have our “deployments” be automated through GitLab, even though our product isn’t something you can really “stop” once released like a web application.

We really like that we can have protected environments, which aligns with our process that our QA department is responsible for approving and publishing the product, and is the biggest reason we’re considering using GitLab over our original choice of BitBucket.

In your opinion, are GitLab deployments suitable for a “distribution” based deployment? Have you used a deployment workflow like this (or something similar) before in GitLab? If “distribution” deployments are not suitable for GitLab deployments, do you have any suggestions for an alternative workflow? Any suggestions/guidance/resources I should look into.