tic tac toe job pipeline

Ultimately automation should trigger on changes in the code repository. To that end I need a GitHub Webhook to trigger the pipeline.

The entpoint that get the trigger could be either a server that I am running or a service that AWS provides.

If I run my own service I would need to keep that online on my own cost. Running a t2.nano on AWS costs 60$ per year - really cheap - not cheap enough.

So the next thing I looked into were AWS Code Pipelines. The trigger reaches AWS and I do not need to run anything. After that the code pipeline executed for a few minutes and quits again. So the costs are so low I could not even put a number on it.

Setting up CI / CD was very simple. Effectively AWS automatically connects with the repo and sets up the hooks for you - all you need is to authorize AWS to connect to the Github API in your name.

Since I want to pull my gcc compiler from hub.docker.com I ran into an Issue where docker just would not want to run on the Pipeline Machine. It turns out there are a few configuration options hidden in the Environment section of the Code Pipeline configuration.

Image Override reveals the option to upgrade the pipeline. I needed:

  • aws/codebuild/standard 2.0
  • Check Priviledged

Checking both these options made my pipeline run and complete successfully.

version: 0.2
phases:
install:
runtime-versions:
docker: 18
pre_build:
commands:
    - docker pull gcc
build:
commands:
    - docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc make
artifacts:
files:
    - ./main

The output artifacs ended up in an S3 bucket

If you just want to hang out you may have a chance to catch me on  twitch . Get in touch on twitter

Here are all the links I ended up inspecting for this:

S3 Caculator Amazon CI/CD Practices Expedia’s Automated CI/CD How to Deploy a Jenkins Cluster on AWS in a Fully Automated CI/CD Platform Save up to 90% on CI/CD Accelerating DevOps Pipelines with AWS /var/run/docker.sock Setting up a CICD Pipeline for Containers on AWS CodePipeline User Guide CodePipeline Pipeline Structure Reference How to apply CI/CD by using GitHub, CodeBuild, CodePipeline and ECS Amazon ECR Sample for CodeBuild Troubleshooting CodeBuild Build Specification Reference for CodeBuild Runtime version selection is not supported by this build image Change a Build Project’s Settings in CodeBuild How to run docker-compose on AWS CodeBuild?

Written on May 29, 2013