6
12 Comments

Continuous integration as a solo developer

Whilst I'm the only developer working on my side project https://forkedmerch.com I am still practicing continuous integration. It’s a love hate relationship. Sometimes I love the fact that I have the confidence in my test coverage to deploy a super quick feature or improvement that I added in the morning before work. Other times I'm banging my head against a brick wall for hours wondering why my I’ve made my workflow this complicated. But deep down I feel that in the long run it is the right approach.

The most talked about benefits of CI are usually around integrating with other team members changes, other services etc. But I've found some benefits for the solo developer:

  • If I return to the project after some time the CI server is a good place to see where exactly I was. I find it a good practice to leave a failing test if I haven't finished a feature so I can jump straight back in and pick up where I left off.
  • It requires discipline. You have to think how your code is going to be testable and how it will run in different environments. Easy to slip on this when you don't have a team to be accountable to.
  • It’s just nice to be getting feedback, even from an automated system :D

I'm using CircleCI and Cypress.io. What are other people using? I wonder if there is a service out there more tailored towards solo developers?

posted to Icon for group Developers
Developers
on January 13, 2020
  1. 2

    This is actually something I just started working on with a cofounder. Dead simple modern CI/CD. We’re building a way to autoprovision Kubernetes clusters and probably minimally Gitlab CE (free), and adding some checkboxes for different addon best practices (OSS) cloud native components: Prometheus monitoring, jaeger tracing, keycloak IAM, vault secrets, Loki log aggregation, Grafana dashboards, all that, and if you selected them, making sure the various CICD components are hooked up).

    We’d take care of maintenance and version management for the various components, making sure upgrades happen seamlessly for all customers, unless you decide you want to manage it yourself.

    On top of that, maybe some consulting time for provide any training and migration you might want or need to get things deploying seamlessly. The idea is that we want to help you for as long as we provide value, but make it possible and easy for you to leave if you decide you’ve grown enough to invest in managing it yourself.

    I’ve had a lot of great experiences building CI/CD on gitlab and Kubernetes, especially with their review apps and environments, and I want to help more people benefit from that with minimum overhead to getting started.

    Is that something anyone here would pay good money to solve?

    1. 1

      Oh wow, this post is a year old. Thought it was a few weeks old.

  2. 2

    Since I started using CI I have never gone back or regretted the decision.
    Using buddy for our pipelines, so simple yet infinitely powerful.

    Weirdly enough on my primary startup I am the sole developer, yet on a bunch of side projects and client jobs I have a team also contributing.
    All feel just the same, the process works so I don't question it.

    Once I have setup the build process it is actually simpler than before though.
    I used to have to SSH to run an update script, with a few seconds the app crashed.
    Now every git push is automated, tests itself and deploys with no downtime at all.

  3. 1

    I use AWS CodeCommit, CodePipelines and CodeBuild.

    1. 2

      CodePipeline looks very reasonably priced.

  4. 1

    Gitlab pipelines - free. Very easy to create and manage - git included with private repos for free.

    I have that pipeline:

    • Build -> Test (inmemory, persistence + extended) -> Staging (deploy) -> Production:manual(deploy)

    It works really nice.

    https://docs.gitlab.com/ee/ci/pipelines.html

    1. 1

      I always forget about GitLab!

  5. 1

    I've started playing around with Github Actions. So far so good. I'm only using it to build static web assets (e.g. for a Gatsby.js site), sync them to an AWS S3 bucket, and invalidate an AWS CloudFront CDN distribution. It only does this for me when I push to a deploy branch on Github, but it's flexible enough to trigger on a bunch of conditions. Haven't used it for testing yet, but it's pretty capable. I like that it's lightweight, the workflow configuration is just yaml files version controlled in your repo, and I don't have to set up a separate CI/CD product.

    https://help.github.com/en/actions

    1. 1

      Sounds cool, thanks!

  6. 1

    We at vocab10k.com are using gitlab ci with self-hosted worker.

    The main benefit is I don't spend time on deployments at all. It just builds itself and then publishes a docker container to the server with docker swarm. I even deploy my blog that way :)

  7. 1

    I'm in the same boat. I use team city by jet brains. Its saved me once or twice when I updated a library method, thought I maintained backwards compatibility to other things using the library but when CI ran and reran all the tests for the apps that were dependent on the library it threw a load of test failures and I was able to fix before deploying the library change 😀

  8. 1

    If there is, I havent found it. So sorry I can weigh in, other than confirming I'm in the same boat (Cypress, AWS).

Trending on Indie Hackers
Never hire an SEO Agency for your Saas Startup User Avatar 98 comments A simple way to keep AI automations from making bad decisions User Avatar 67 comments I shipped a productivity SaaS in 30 days as a solo dev — here's what AI actually changed (and what it didn't) User Avatar 56 comments “This contract looked normal - but could cost millions” User Avatar 54 comments 👉 The most expensive contract mistakes don’t feel risky User Avatar 41 comments Are indie makers actually bad customers? User Avatar 36 comments