Three Dots Labs Three Dots Labs
  • Home
  • Blog
  • Newsletter
  • Podcast
  • Training & Courses
  • Get our e-book
Get our e-book
Type something to search..
to navigate to select ESC to close

Ci

  • Home /
  • Tags /
  • ci
Running integration tests with docker-compose in Google Cloud Build

Running integration tests with docker-compose in Google Cloud Build

  • Avatar
    Miłosz Smółka

This post is a direct follow-up to Microservices test architecture where I introduced new kinds of tests to our example project. Wild Workouts uses Google Cloud Build as its CI/CD platform. It’s configured for continuous deployment, meaning changes land on production as soon as the pipeline passes. Note State of this article in 2026 This article is kept as an archive.

Microservices test architecture. Can you sleep well without end-to-end tests?

Microservices test architecture. Can you sleep well without end-to-end tests?

  • Avatar
    Miłosz Smółka

Do you know the rare feeling when you develop a new application from scratch and can cover all lines with proper tests? I said “rare” because most of the time, you work with software that has a long history, multiple contributors, and a less-than-obvious testing approach. Even if the code uses good patterns, the test suite doesn’t always follow. Some projects have no modern development environment set up, so there are only unit tests for things that are easy to test.

GitLab CI tips for building custom workflows

GitLab CI tips for building custom workflows

  • Avatar
    Miłosz Smółka

This time I’d like to touch on a few more advanced topics related to GitLab CI. The common theme here is implementing custom features within your pipeline. Again, most of the tips are specific to GitLab, but some could be easily applied in other CI systems as well. Running integration tests Checking your code with unit tests is usually easy to plug into any CI system.

Automatic Semantic Versioning in GitLab CI

Automatic Semantic Versioning in GitLab CI

  • Avatar
    Miłosz Smółka

In the previous post I showed how to keep all the scripts used in the CI in one repository. Let’s see what more advanced scripts you could put in there. This time I’d like to show how to add automatic versioning to your pipeline. You will also see how to push commits to your repository within the CI jobs. But first, let’s start with some background.

Keeping common scripts in GitLab CI

Keeping common scripts in GitLab CI

  • Avatar
    Miłosz Smółka

With this post, I’d like to start a series of CI-related tips, targeted mostly at GitLab, since that’s my go-to tool for things CI/CD-related. I’m sure most of them could be easily applied to other CI systems, though. While GitLab does a great job at many things (repository hosting and related stuff, like MRs, pipelines, issue boards, etc.), it sometimes lacks more specialized features in some areas.

Series
  • Building in public ( 2 )
  • Essays ( 1 )
  • Guest post ( 2 )
  • Live podcast ( 14 )
  • Modern Business Software in Go ( 14 )
  • Watermill release post ( 7 )
Popular articles
  • The Go libraries that never failed us: 22 libraries you need to know
  • Safer Enums in Go
  • Common Anti-Patterns in Go Web Applications
  • How to implement Clean Architecture in Go (Golang)
  • The Repository pattern in Go: a painless way to simplify your service logic
  • Introduction to DDD Lite: When microservices in Go are not enough
Tags
  • go
  • golang
  • watermill
  • ddd
  • events
  • software-development
  • domain-driven design
  • event-driven
  • clean-architecture
  • web-applications
  • anti-patterns
  • architecture
  • ci
  • firestore
  • cloudrun
  • gcloud
  • googlecloud
  • microservices
  • serverless
  • testing
  • advanced
  • backend
  • databases
  • devops
  • firebase
  • gitlab
  • reactive
  • repository
  • ai
  • basics
  • building-business-applications
  • building-in-public
  • cqrs
  • frameworks
  • kafka
  • mysql
  • nats
  • pipelines
  • scalability
  • software-architecture
  • transactions
  • agents
  • amqp
  • authentication
  • balance
  • bounded-context
  • c4
  • cicd
  • code-quality
  • code-review
  • complexity
  • design-patterns
  • development-process
  • diagrams
  • docker
  • dry
  • e-book
  • efficiency
  • enums
  • event-storming
  • gamedev
  • generics
  • google-cloud
  • grpc
  • htmx
  • intermediate
  • iteration
  • javascript
  • learning
  • libraries
  • llm
  • metrics
  • modular-monolith
  • monolith
  • open-source
  • openapi
  • over-engineering
  • overengineering
  • parallelism
  • product-engineering
  • productivity
  • programming-languages
  • prometheus
  • pull-requests
  • python
  • rabbitmq
  • retrospective
  • security
  • software-design
  • sql
  • sse
  • startups
  • strategic-ddd
  • swagger
  • terraform
  • tips
  • unpopular-opinions
  • versioning
  • work-culture
Three Dots Labs Three Dots Labs
  • Contact
  • Privacy Policy
  • About us

© Three Dots Labs 2014 — 2026

We are a bootstrapped company. By supporting us, you support independent creators.