From 79d840c74a752b336230dde310bef6238afa9b10 Mon Sep 17 00:00:00 2001 From: Charles Care Date: Thu, 15 Aug 2019 14:38:14 +0100 Subject: [PATCH] Externalise config --- .gitignore | 1 + bin/{spike => build_analyzer} | 4 +-- config/pipeline.yml.sample | 5 ++++ lib/pipeline.rb | 26 ++++++++++++------- lib/pipeline/publish_image.rb | 11 +------- ...ike_test.rb => build_and_validate_test.rb} | 2 +- .../validation/check_features_test.rb | 2 +- 7 files changed, 27 insertions(+), 24 deletions(-) rename bin/{spike => build_analyzer} (52%) create mode 100644 config/pipeline.yml.sample rename test/{spike_test.rb => build_and_validate_test.rb} (84%) diff --git a/.gitignore b/.gitignore index 3b0b961..7ccffa6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.swp +config/pipeline.yml .DS_Store tmp/* opt/ diff --git a/bin/spike b/bin/build_analyzer similarity index 52% rename from bin/spike rename to bin/build_analyzer index 54d7c9d..6018447 100755 --- a/bin/spike +++ b/bin/build_analyzer @@ -3,5 +3,5 @@ require "bundler/setup" $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) require "pipeline" - -Pipeline.spike +Pipeline.load_config(File.expand_path('../../config/pipeline.yml', __FILE__)) +Pipeline.build_analyzer(ARGV[0]) diff --git a/config/pipeline.yml.sample b/config/pipeline.yml.sample new file mode 100644 index 0000000..c548d2e --- /dev/null +++ b/config/pipeline.yml.sample @@ -0,0 +1,5 @@ +aws_access_key_id: AKIA... +aws_secret_access_key: +aws_region: eu-west-1 +registry_endpoint: +analyzer_suffix: -dev diff --git a/lib/pipeline.rb b/lib/pipeline.rb index a7ad0c0..68b8091 100644 --- a/lib/pipeline.rb +++ b/lib/pipeline.rb @@ -4,18 +4,24 @@ require "active_support" require 'securerandom' require 'rugged' require 'aws-sdk-ecr' - -Aws.config.update({ - credentials: Aws::Credentials.new('AKIAZ5OU5BBSQDMMFQ7J', '+Q2fMSju+dJljn6G2XFZOt6vUHgSF56P736yPQhj') -}) +require 'yaml' module Pipeline - def self.spike - puts "OK" - AnalyzerBuild.("ruby") - # repo = Pipeline::AnalyzerRepo.new("/home/ccare/code/exercism/sample-analyzer") - # repo.fetch! - puts "DONE" + + def self.load_config(config_path) + config = YAML.load(File.read(config_path)) + Aws.config.update({ + credentials: Aws::Credentials.new(config["aws_access_key_id"], config["aws_secret_access_key"]) + }) + @config = config + end + + def self.config + @config + end + + def self.build_analyzer(track_slug) + AnalyzerBuild.(track_slug) end end diff --git a/lib/pipeline/publish_image.rb b/lib/pipeline/publish_image.rb index b4fb235..b6c715b 100644 --- a/lib/pipeline/publish_image.rb +++ b/lib/pipeline/publish_image.rb @@ -24,10 +24,6 @@ class Pipeline::PublishImage img.logout(registry_endpoint) end - def registry_endpoint - "681735686245.dkr.ecr.eu-west-1.amazonaws.com" - end - def tag_build img.tag(image_tag, remote_tag) img.tag(image_tag, remote_human_tag) unless build_tag.nil? @@ -53,12 +49,7 @@ class Pipeline::PublishImage end def registry_endpoint - "681735686245.dkr.ecr.eu-west-1.amazonaws.com" + Pipeline.config["registry_endpoint"] end - def slug - image_tag - end - - end diff --git a/test/spike_test.rb b/test/build_and_validate_test.rb similarity index 84% rename from test/spike_test.rb rename to test/build_and_validate_test.rb index fc6b14b..f57eb22 100644 --- a/test/spike_test.rb +++ b/test/build_and_validate_test.rb @@ -5,7 +5,7 @@ module Pipeline class BuildAndValidateTest < Minitest::Test def test_build_and_validate_realish_image - demo_analyzer_repo = "/home/ccare/code/exercism/sample-analyzer" + demo_analyzer_repo = "https://github.com/exercism/stub-analyzer.git" repo = Pipeline::AnalyzerRepo.new(demo_analyzer_repo) img = Pipeline::Util::ImgWrapper.new image_tag = Pipeline::BuildImage.("master", "demo", repo, img) diff --git a/test/pipeline/validation/check_features_test.rb b/test/pipeline/validation/check_features_test.rb index fab4b38..a7a63d1 100644 --- a/test/pipeline/validation/check_features_test.rb +++ b/test/pipeline/validation/check_features_test.rb @@ -8,7 +8,7 @@ module Pipeline::Validation def setup track_slug = "demo" - demo_analyzer_repo = "/home/ccare/code/exercism/sample-analyzer" + demo_analyzer_repo = "https://github.com/exercism/stub-analyzer.git" repo = Pipeline::AnalyzerRepo.new(demo_analyzer_repo) workdir = "/tmp/analyzer-scratch/#{SecureRandom.uuid}"