DEV Community

Saunak Surani
Saunak Surani

Posted on

Part 4: Continuous Integration for Confidence: Running Tests in CI with GoLang RestAPI and MariaDB

Continuous Integration (CI) is a development practice that involves automating the testing and integration of code changes. In this article, we'll discuss setting up a CI environment for your GoLang RestAPI project with MariaDB. This practice ensures that your codebase remains stable and reliable as new changes are introduced.

Section 1: Understanding Continuous Integration and Its Benefits

Continuous Integration involves frequently merging code changes into a shared repository and automatically running tests to detect and address integration issues early. It enhances collaboration, reduces bugs, and ensures code stability.

Section 2: Selecting a CI Platform

Choose a CI platform that suits your project's needs. Popular choices include Jenkins, Travis CI, CircleCI, and GitHub Actions. In this example, we'll use GitHub Actions.

Section 3: Configuring CI for GoLang RestAPI and MariaDB

  1. Create a .github/workflows directory in your project repository.
  2. Inside this directory, create a YAML file (e.g., ci.yml) to define the CI workflow.

Example GitHub Actions workflow:

name: CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    services:
      mariadb:
        image: mariadb:latest
        ports:
          - 3306:3306
        env:
          MYSQL_ROOT_PASSWORD: root

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.17

      - name: Build and test
        run: |
          go build -o app
          go test -v ./...
Enter fullscreen mode Exit fullscreen mode

Section 4: Monitoring Build and Test Results

After setting up the CI workflow, push your changes to the repository. Visit the CI platform to monitor the build and test process. If any tests fail, the CI platform will notify you.

Section 5: Conclusion

Setting up Continuous Integration for your GoLang RestAPI project with MariaDB is a proactive step toward maintaining code quality and reliability. The CI environment automates testing, ensuring that new code changes don't introduce regressions. Embrace this practice to build a robust and dependable software development process.

As you embark on your journey to master Docker, GoLang, MariaDB integration, CRUD operations, and testing, remember that hands-on practice is key to mastery. Dive into each article's steps, experiment with code examples, and adapt them to your specific project needs. By doing so, you'll build a solid foundation for creating efficient and reliable applications.

Image of Timescale

๐Ÿš€ pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applicationsโ€”without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post โ†’

Top comments (1)

Collapse
 
robinamirbahar profile image
Robina โ€ข

great

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more