Deploying Go Projects with CelerBuild Using the Gin Framework Example

This guide demonstrates how to deploy a Go project using CelerBuild Standard Version, including:

  • Branch deployment for development environment
  • Tag deployment for production environment
  • Tag version rollback operations

We'll use the celerbuild-example-go (opens in a new tab) project built with the Gin framework.

Note:

  • This tutorial uses the Standard Version with the admin user
  • For Pro Version features with multiple roles and approval process, please refer to the Pro Version Guide

Prerequisites

1. System Prerequisites

Complete all Prerequisites setup steps

2. Go Environment Setup

Installing Go

macOS
# Using Homebrew
brew install go
 
# Verify installation
go version
Ubuntu/Debian
# Add the repository
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
 
# Install Go
sudo apt install golang-go
 
# Verify installation
go version
CentOS/RHEL
# Install Go
sudo yum install epel-release
sudo yum install golang
 
# Verify installation
go version

Environment Variables

Add these lines to your shell profile (~/.bashrc, ~/.zshrc, etc.):

# Go environment variables
export GOPATH=$HOME/go
export GOROOT=/usr/local/go  # This might vary based on installation method
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Note:

  • The deployment process uses makefile (opens in a new tab) for testing and building
  • Minimum Go version required: 1.16 or later
  • After setting environment variables, run source ~/.bashrc (or your shell profile) to apply changes

3. Build Tools Setup

Installing Make Tool

macOS
# make is included in Command Line Tools
xcode-select --install
 
# Verify installation
make --version
Ubuntu/Debian
# make is usually pre-installed, if not:
sudo apt update
sudo apt install make
 
# Verify installation
make --version
CentOS/RHEL
# make is usually pre-installed, if not:
sudo yum install make
 
# Verify installation
make --version

Note:

  • Most Unix-like systems (macOS, Linux) come with make pre-installed
  • For macOS, if make is not found, installing Command Line Tools will include it
  • The deployment process requires make for building and packaging operations

Branch Deployment

1. Create Server Infrastructure

Create Server Cluster

  • Navigate to Global/Server Clusters
  • Create a cluster named "example-go-server-cluster(dev)"

Create Server Cluster

Add Server

  • Navigate to the Global/Servers section or go to the Actions menu of the newly created example-go-server-cluster(dev) and select "Servers"
  • Select cluster "example-go-server-cluster(dev)"
  • Fill in:
    • Server Name
    • Server IP
    • SSH Port (default: 22)

Add Server

2. Import Project Template

Download Template

image

Import Template

  • Navigate to Projects/Projects
  • Click "Import YAML"
  • Upload the downloaded template

Import Template

Create Project

  • Review and confirm project settings
  • Click "Create Project" to finish

add-project-part-1

add-project-part-2

3. Initiating Deployment

  1. Go to Operations/Applications
  2. Select project "celerbuild-example-go-dev"
  3. Fill in Title and Description
  4. Click sync icon next to "Branch" and select latest dev branch
  5. Click "Submit Application"

apply-deploy-part-1 apply-deploy-part-2

For detailed steps, see Creating Deployment

4. Executing Deployment

  1. In Operations/Tasks, find your project task
  2. Click "Deploy" button
  3. On the task page, click "Start Deploy"
  4. Monitor Server Status and Operation Logs
  5. If issues occur, check error messages and retry deployment after fixing

tasks-1

tasks-2

tasks-3

For detailed steps, see Execute Deployment Task

5. Verification

Access http://server:8080/version (replace "server" with your server address)

# Example command
  ~ curl http://server:8080/version
 
# Expected response
{"version":"1.0.9"}

Note:

  • Replace "server" with your actual server IP address
  • A response similar to {"version":"1.0.9"} indicates successful deployment
  • If you cannot access the endpoint, check:
    • Server firewall settings
    • Port 8080 accessibility
    • Application running status

Tag Deployment

1. Create Server Infrastructure

Create Server Cluster

  • Navigate to Global/Server Clusters
  • Create a cluster named "example-go-server-cluster(prod)"

prod-server-cluster

Add Server

  • Navigate to the Global/Servers section or go to the Actions menu of the newly created example-go-server-cluster(prod) and select "Servers"

  • Select cluster "example-go-server-cluster(prod)"

  • Fill in:

    • Server Name
    • Server IP
    • SSH Port (default: 22)

Add Production Server

2. Import Project Template

Download Template

image

Import Template

  • Navigate to Projects/Projects
  • Click "Import YAML"
  • Upload the downloaded template

Import Production Template

Create Project

  • Review and confirm project settings
  • Click "Create Project" to finish

create-project-prod-1

create-project-prod-2

3. Initiating Deployment

  1. Go to Operations/Applications
  2. Select project "celerbuild-example-go-prod" and Click "Apply Deploy"
  3. Fill in Title and Description
  4. Click sync icon next to "Tag" and select latest tag
  5. Click "Submit Application"

apply-deploy-1 apply-deploy-2

For detailed steps, see Creating Deployment

4. Executing Deployment

Follow the same steps as branch deployment execution.

prod-task-1 prod-task-3

5. Verification

Access http://server:8080/version (replace "server" with your server address)

# Example command
  ~ curl http://server:8080/version
 
# Expected response
{"version":"1.0.5"}

Note:

  • Replace "server" with your actual server IP address
  • A response similar to {"version":"1.0.5"} indicates successful deployment
  • If you cannot access the endpoint, check:
    • Server firewall settings
    • Port 8080 accessibility
    • Application running status

Rollback Operations

Note: Branch deployment rollback is not demonstrated here because the system only maintains the latest committed version. We'll demonstrate rollback using tag deployments instead.

Tag Deployment Rollback Example

1. Initial Deployment (v1.0.5)

For detailed deployment steps, refer to:

  1. Go to Operations/Applications
  2. Select project "celerbuild-example-go-prod"
  3. Fill in deployment information:
    • Title: "Deploy v1.0.5"
    • Description: "Initial deployment of v1.0.5"
  4. Click sync icon next to "Tag" and select "v1.0.5"
  5. Click "Submit Application"
  6. Execute deployment and verify:
curl http://server:8080/version
{"version":"1.0.5"}

2. Upgrade to v1.0.6

For detailed deployment steps, refer to:

  1. Go to Operations/Applications
  2. Create new deployment
  3. Fill in deployment information:
    • Title: "Upgrade to v1.0.6"
    • Description: "Upgrading from v1.0.5 to v1.0.6"
  4. Select tag "v1.0.6"
  5. Submit and execute deployment
  6. Verify upgrade:
curl http://server:8080/version
{"version":"1.0.6"}

3. Rollback to v1.0.5

  1. In Operations/Applications, find your project
  2. Click Actions (three dots) and select "Apply Rollback"
  3. Fill in rollback information:
    • Title: "Rollback to v1.0.5"
    • Description: "Rolling back from v1.0.6 to v1.0.5"
  4. Click sync icon next to "Select Rollback Tag"
  5. Select "v1.0.5" from the available tags
  6. Click "Submit Rollback"

apply-rollback-1 apply-rollback-2

4. Execute Rollback

  1. Go to Operations/Tasks
  2. Find your rollback task
  3. Click "Rollback" in Actions
  4. Click "Start Rollback" on the task page
  5. Monitor Server Status and Operation Logs
  6. Verify rollback success:
curl http://server:8080/version
{"version":"1.0.5"}

rollback-tasks-1 rollback-tasks-2

For detailed rollback instructions, see:

Congratulations! You have successfully learned how to deploy Gin Framework using CelerBuild Standard Edition, including branch deployment, tag deployment, and tag version rollback operations! 🎉