Coder Social home page Coder Social logo

houdinisparks / cicd-images Goto Github PK

View Code? Open in Web Editor NEW

This project forked from owalimolla/cicd-images

0.0 2.0 0.0 59.2 MB

Images used internally for running continuous integration/delivery tasks

License: MIT License

Shell 65.09% Dockerfile 34.91%

cicd-images's Introduction

CI/CD Containers for Pipelines

Build Status

This repository is a collection of Docker images we use internally for continuous integration/delivery pipelines.

Daily builds are run against these images and automatically sent to our DockerHub repository at:

https://hub.docker.com/r/govtechsg/cicd-images

Catalog (Alphabetical Order)

  • Alpine Linux (alpine)
  • Amazon Web Services CLI (awscli)
  • Cypress (cypress)
  • Docker-in-Docker (dind)
  • Google Kubernetes Engine CLI (gkecli)
  • Karma Test Runner (karma)
  • Kubernetes Client (kubectl)
  • Trinity (awscli + docker + kubectl)
  • Node.js (node)
  • Robot Selenium (robot-selenium)
  • Version Tagging Scripts (vtscripts)

Release Notes

The images are found in the DockerHub registry, and the names of the different types of images are added as a tag. For example given a type of image called xyz, it will be available under the repository URL govtechsg/cicd-images:xyz-latest. Specific versions can be found in the DockerHub Tags page

Universal Tooling

All images will contain some tools essential for most operations that will happen in a continuous integration/delivery pipeline. These tools are:

  • bash
  • curl
  • jq
  • vim
  • git

Usage/Descriptions

alpine

Anchore Image Overview

Canonical Tag: alpine-<ALPINE_VERSION>
Latest URL: govtechsg/cicd-images:alpine-latest

Notes

We use Alpine for our production deployments, only makes sense to run stuff in Alpine. This image contains common tools in pipelines and should serve most general needs. If you need more pacakges, feel free to submit a pull request with the required APK packages.

awscli

Anchore Image Overview

Canonical Tag: awscli-<AWS_CLI_VERSION>
Latest URL: govtechsg/cicd-images:awscli-latest

Notes

Set the following environment variables to your AWS credentials to allow the AWS CLI tool to connect.

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION

cypress

Canonical Tag: cypress-<REPO_VERSION>
Latest URL: govtechsg/cicd-images:cypress-latest

Notes

dephash

Canonical Tag: dephash-<REPO_VERSION>
Latest URL: govtechsg/cicd-images:dephash-latest

Notes

See https://github.com/govtechsg/version-tagging-scripts for more information on using this. Commands are symbolic linked to the system variable directory so you can use the following commands:

  • dephash ./path/to/file --npm
  • dephash ./path/to/file --npm --prod
  • dephash ./path/to/file --npm --dev
  • dephash ./path/to/file --yarn

dind

Anchore Image Overview

Canonical Tag: dind-<DOCKER_VERSION>
Latest URL: govtechsg/cicd-images:dind-latest

Notes

You will need to configure this image so that the host file at path /var/run/docker.sock is mapped to the /var/run/docker.sock in the container.

gkecli

Anchore Image Overview

Canonical Tag: gkecli-<GOOGLE_SDK_VERSION>
Latest URL: govtechsg/cicd-images:gkecli-latest

Notes

An additional child image, or a script should be added to this to set Google credentials and retrieve the Kubernetes configurations.

karma

Anchore Image Overview

Canonical Tag: karma-<CHROMIUM_VERSION>
Latest URL: govtechsg/cicd-images:karma-latest

Notes

Karma is not included in the karma image, this image only provides the base for it to run ChromeHeadless. Remember to include the --no-sandbox flag in the Karma configuration.

kubectl

Anchore Image Overview

Canonical Tag: kubectl-<KUBECTL_VERSION>
Latest URL: govtechsg/cicd-images:kubectl-latest

Notes

For use when there's a deployment to a Kubernetes deployment.

node

Anchore Image Overview

Canonical Tag: node-<NODE_VERSION>
Latest URL: govtechsg/cicd-images:node<NODE_MAJOR_VERSION>-latest

Notes

All LTS versions of Node, and the latest major version (LTS or otherwise) are builit.

robot-selenium

Anchore Image Overview

Latest URL: govtechsg/cicd-images:robot-selenium-latest

trinity

Canonical Tag: trinity-<AWS_CLI_VERSION>-<DOCKER_VERSION>-<KUBECT_VERSION> Latest URL: govtechsg/cicd-images:trinity-latest

vtscripts

Anchore Image Overview

Canonical Tag: vtscripts-<VTSCRIPTS> Latest URL: govtechsg/cicd-images:vtscripts-latest

Notes

See https://github.com/govtechsg/version-tagging-scripts for more information on using this. Commands are symbolic linked to the system variable directory so you can use the following commands:

  • init -q
  • get-branch -q
  • get-latest -q
  • get-next -q
  • iterate -q

Other Uses

Images specified here can be uploaded to other repositories if you so wish. The commands are:

For Building

The build script creates the build for the specified image:

DH_REPO=__URL_TO_REPO__
IMAGE_NAME=__DIRECTORY_NAME__
./.scripts/.build.sh "${DH_REPO}" "${IMAGE_NAME}"

An example to upload to a DockerHub at yourusername/yourimage:dind-latest:

DH_REPO="yourusername/yourimage"
IMAGE_NAME="dind"
./.scripts/.build.sh "${DH_REPO}" "${IMAGE_NAME}"

For Publishing

The publish script in each directory sends your built image to DockerHub and relies on the ./.scripts/.build.sh script being run prior to it. The general format of usage:

DH_REPO=__URL_TO_REPO__
IMAGE_NAME=__DIRECTORY_NAME__
./${IMAGE_NAME}/.publish.sh "${DH_REPO}:${IMAGE_NAME}"

A corresponding example to upload to a DockerHub repository at yourusername/yourimage:dind-latest:

DH_REPO="yourusername/yourimage"
IMAGE_NAME="dind"
./${IMAGE_NAME}/.publish.sh "${DH_REPO}:${IMAGE_NAME}"

Each directory and type of image has its own publish script because of the different ways they are versioned.

cicd-images's People

Contributors

ryanoolala avatar gylsky avatar chinkjieh avatar zephinzer avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.