From 2980adc7e4994d276f78cb21841456f2cf971683 Mon Sep 17 00:00:00 2001 From: Don Tregonning Date: Fri, 4 Jan 2019 11:53:58 -0800 Subject: [PATCH] Added cicd pipelines for build, testing and pushing artifacts and added status badge --- .circleci/build_and_push.sh | 10 ++++++++++ .circleci/config.yml | 38 +++++++++++++++++++++++++++++++++++++ .circleci/push_gem.sh | 7 +++++++ README.md | 1 + 4 files changed, 56 insertions(+) create mode 100755 .circleci/build_and_push.sh create mode 100644 .circleci/config.yml create mode 100755 .circleci/push_gem.sh diff --git a/.circleci/build_and_push.sh b/.circleci/build_and_push.sh new file mode 100755 index 0000000..1b2c12b --- /dev/null +++ b/.circleci/build_and_push.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -e +aws ecr get-login --region $AWS_REGION --no-include-email | bash +echo "Building docker image..." +cp pkg/fluent-plugin-kubernetes-metrics-*.gem docker +docker build --no-cache -t splunk/fluent-plugin-kubernetes-metrics:metrics ./docker +docker tag splunk/fluent-plugin-kubernetes-metrics:metrics $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/k8s-ci-metrics:latest +echo "Push docker image to ecr..." +docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/k8s-ci-metrics:latest | awk 'END{print}' +echo "Docker image pushed successfully." \ No newline at end of file diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..0321989 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,38 @@ +version: 2 +jobs: + build: + docker: + - image: circleci/ruby:2.4.1-node-browsers + + working_directory: ~/repo + + steps: + - checkout + - setup_remote_docker: + reusable: true + - run: + name: Install dependencies + command: | + sudo gem update --system + gem install bundler + bundle install --jobs=4 --retry=3 --path vendor/bundler + + - run: + name: Builder + command: | + rake build -t -v + + - run: + name: Run unit tests + command: | + rake test -t -v + + - run: + name: Push rubygem to s3 + command: | + .circleci/push_gem.sh + + - run: + name: Build and push docker image to ecr + command: | + .circleci/build_and_push.sh \ No newline at end of file diff --git a/.circleci/push_gem.sh b/.circleci/push_gem.sh new file mode 100755 index 0000000..d995882 --- /dev/null +++ b/.circleci/push_gem.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -e +sudo apt-get install -y python-pip libpython-dev > /dev/null 2>&1 +echo "Installing aws cli..." +sudo pip install awscli > /dev/null 2>&1 +echo "Pushing metrics gem to s3..." +aws s3 cp pkg/*.gem s3://k8s-ci-artifacts/ \ No newline at end of file diff --git a/README.md b/README.md index 74c9def..106cec6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![CircleCI](https://circleci.com/gh/git-lfs/git-lfs.svg?style=shield&circle-token=856152c2b02bfd236f54d21e1f581f3e4ebf47ad)](https://circleci.com/gh/splunk/fluent-plugin-kubernetes-metrics) # fluent-plugin-kubernetes-metrics [Fluentd](https://fluentd.org/) input plugin to collect kubernetes cluster metrics from the Summary API, exposed by [Kubelet](https://kubernetes.io/docs/admin/kubelet/) on each node.