From 4663032035039cc642db9b3f82b289418d02c430 Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Mon, 7 Aug 2017 13:35:47 -0400 Subject: Bug 1383355 - Migrate CI tests from taskcluster to CircleCI --- .circleci/deploy.pl | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 .circleci/deploy.pl (limited to '.circleci/deploy.pl') diff --git a/.circleci/deploy.pl b/.circleci/deploy.pl new file mode 100755 index 000000000..391b9b660 --- /dev/null +++ b/.circleci/deploy.pl @@ -0,0 +1,52 @@ +#!/usr/bin/env perl +use 5.10.1; +use strict; +use warnings; + +my ($repo, $user, $pass) = check_env(qw(DOCKERHUB_REPO DOCKER_USER DOCKER_PASS)); +run("docker", "login", "-u", $user, "-p", $pass); + +my @docker_tags = ($ENV{CIRCLE_SHA1}); + +if ($ENV{CIRCLE_TAG}) { + push @docker_tags, $ENV{CIRCLE_TAG}; +} +elsif ($ENV{CIRCLE_BRANCH}) { + if ($ENV{CIRCLE_BRANCH} eq 'master') { + push @docker_tags, 'latest'; + } + else { + push @docker_tags, $ENV{CIRCLE_BRANCH}; + } +} + +say "Pushing tags..."; +say " $_" for @docker_tags; +foreach my $tag (@docker_tags) { + run("docker", "tag", "bmo", "$repo:$tag"); + run("docker", "push", "$repo:$tag"); +} + +sub run { + my (@cmd) = @_; + my $rv = system(@cmd); + exit 1 if $rv != 0; +} + +sub check_env { + my (@missing, @found); + foreach my $name (@_) { + push @missing, $name unless $ENV{$name}; + push @found, $ENV{$name}; + } + + if (@missing) { + warn "Missing environmental variables: ", join(", ", @missing), "\n"; + exit; + } + return @found; +} + + + + -- cgit v1.2.3-24-g4f1b