All articles

Getting Started

What is CICDoo Getting started: the onboarding wizard The Dashboard and Infrastructure Map

Concepts

Production, staging and development stages Domains, subdomains and SSL Odoo versions and editions (Community vs Enterprise) Workspaces and team collaboration

Servers

Adding a server Server domains and DNS Using a load balancer Server actions: deploy, logs and charts Deleting a server

Projects & Git

Creating a project Connecting GitHub Project GitHub settings and webhook Connecting GitLab Branches and instances Tagging and filtering projects High availability with app nodes Project environments, extensions and deletion

Instances & Console

Creating an instance Restarting, stopping and removing an instance Merging branches between stages Web IDE and remote access SSH access to instances Instance settings explained Deployments and the job queue

Agent Tasks

What agent tasks are Setting up agent tasks Running a task and reviewing the result Agent time and top-ups Agent insights and task filters

Monitoring & Backups

Monitoring your instance Backups and restore S3 storage, uploads and bulk backup actions Alert notifications (email and SMS)

Workspaces & Permissions

Inviting workspace members Member permissions and resource access A member cannot see or use a resource Audit log and server activity

Account & Security

Two-factor authentication (2FA) Profile and integrations settings Passwords and account recovery

Billing & Plans

Plans and pricing Upgrading and managing your subscription If a project subscription goes unpaid The channel partner program Onboarding a client as a partner

Support & Tickets

Opening a support ticket Getting help from the CICDoo team

Troubleshooting

Troubleshooting: cannot connect a server Troubleshooting: a deployment failed Troubleshooting: git push fails with 403 after moving a repository Troubleshooting: my instance is down or slow Troubleshooting: domain or SSL problems

Instances & Console

Merging branches between stages

How to merge an instance's branch into a target branch from the Console to promote work from development to staging to production, and what to do when a merge fails.

What the Merge action does

Every instance in CICDoo runs a git branch. When the work on one branch is ready to move forward, you merge it into another branch. CICDoo makes the merge in your GitHub repository, and the instance running the target branch then picks up the merged code through a deployment.

The branch of the instance you start from is the source. You only type the target.

Merging a branch

  1. Open the instance whose branch you want to merge (the source) in the Console.
  2. Make sure no other job is running for this instance in the Queue tab. A merge is refused while another job is pending or running.
  3. In the quick actions row under the instance header, click Merge.
  4. In the "Merge Branch" dialog, type the Target branch name (for example, main). Check the spelling: this is a free text field.
  5. Click Merge.
  6. Open the Queue tab and click View log on the merge job to see the result.

The merge job log says one of three things:

  • The source was merged into the target successfully.
  • There was nothing to merge, because the target already contains the source's changes.
  • There is a merge conflict, which you have to resolve in git yourself (for example by merging the target into your branch locally, fixing the conflicts and pushing), before trying again.

Note: If you leave the target empty, CICDoo merges into main.

After the merge

The merge is a push to the target branch, so the instance running that branch deploys it like any other push. This relies on the project's GitHub webhook; if the target instance does not deploy, check the webhook, see Project GitHub settings and webhook.

If you also want modules upgraded on the target instance, open that instance and run a Soft Restart, see Restarting, stopping and removing an instance.

Typical flow: development to staging to production

  1. Build and test a feature on a Development instance.
  2. From the development instance, merge its branch into your Staging branch.
  3. Verify the result on the staging instance.
  4. From the staging instance, merge the staging branch into your Production branch to release it.

Merging into the wrong branch triggers a deployment on whatever instance runs that branch, so double check the target, especially when it is the production branch.

Requirements

Related: Production, staging and development stages, Deployments and the job queue, Troubleshooting: a deployment failed.

If you get stuck, open a support ticket from the Tickets page or the chat widget.

Still stuck? Open a ticket from the app or talk to an engineer.