Exemplo n.º 1
0
    def test_circleci_instance(self):
        with tools.environment_append({
                "CIRCLECI":
                "1",
                "CIRCLE_BRANCH":
                "mybranch",
                "CIRCLE_SHA1":
                "506c89117650bb12252db26d35b8c2385411f175",
        }):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), "mybranch")
            self.assertIsNotNone(manager.get_commit_msg())
            self.assertEquals(manager.get_commit_id(),
                              "506c89117650bb12252db26d35b8c2385411f175")
            self.assertEquals(manager.is_pull_request(), False)

        with tools.environment_append({
                "CIRCLECI":
                "1",
                "CIRCLE_BRANCH":
                "pull/35",
                "CIRCLE_SHA1":
                "506c89117650bb12252db26d35b8c2385411f175",
                "CIRCLE_PULL_REQUEST":
                "https://github.com/org/repo/pull/35"
        }):
            manager = CIManager(self.printer)
            self.assertIsNone(manager.get_branch())
            self.assertIsNotNone(manager.get_commit_msg())
            self.assertEquals(manager.get_commit_id(),
                              "506c89117650bb12252db26d35b8c2385411f175")
            self.assertEquals(manager.is_pull_request(), True)
Exemplo n.º 2
0
    def test_shippable_instance(self):
        shippable_env = {
            "SHIPPABLE": "true",
            "COMMIT_MESSAGE": "foobar [qux]",
            "COMMIT": "98e984eacf4e3dfea431c8850c8c181a08e8cf3d",
            "BRANCH": "testing/5.6.5",
            "IS_GIT_TAG": "false",
            "IS_PULL_REQUEST": "false"
        }
        with tools.environment_append(shippable_env):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), shippable_env["BRANCH"])
            self.assertEquals(manager.get_commit_msg(),
                              shippable_env["COMMIT_MESSAGE"])
            self.assertEquals(manager.get_commit_id(), shippable_env["COMMIT"])
            self.assertEquals(manager.is_pull_request(), False)
            self.assertEquals(manager.is_tag(), False)

        shippable_env = {
            "SHIPPABLE": "true",
            "COMMIT_MESSAGE": "new tag",
            "COMMIT": "98e984eacf4e3dfea431c8850c8c181a08e8cf3d",
            "BRANCH": "release/5.6.5",
            "IS_GIT_TAG": "true",
            "IS_PULL_REQUEST": "true"
        }
        with tools.environment_append(shippable_env):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), shippable_env["BRANCH"])
            self.assertEquals(manager.get_commit_msg(),
                              shippable_env["COMMIT_MESSAGE"])
            self.assertEquals(manager.get_commit_id(), shippable_env["COMMIT"])
            self.assertEquals(manager.is_pull_request(), True)
            self.assertEquals(manager.is_tag(), True)
    def test_github_actions_instance(self):
        gha_env = {"GITHUB_ACTIONS": "true",
                   "GITHUB_SHA": "98e984eacf4e3dfea431c8850c8c181a08e8cf3d",
                   "GITHUB_REF": "testing/5.6.5",
                   "GITHUB_BASE_REF": "testing/5.6.5",
                   "GITHUB_EVENT_NAME": "push"}
        with tools.environment_append(gha_env):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), gha_env["GITHUB_REF"])
            self.assertEquals(manager.get_commit_id(), gha_env["GITHUB_SHA"])
            self.assertEquals(manager.is_pull_request(), False)

        gha_env = {"GITHUB_ACTIONS": "true",
                   "GITHUB_SHA": "98e984eacf4e3dfea431c8850c8c181a08e8cf3d",
                   "GITHUB_REF": "quick_fix",
                   "GITHUB_BASE_REF": "testing/5.6.5",
                   "GITHUB_EVENT_NAME": "pull_request"}
        with tools.environment_append(gha_env):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), gha_env["GITHUB_BASE_REF"])
            self.assertEquals(manager.get_commit_id(), gha_env["GITHUB_SHA"])
            self.assertEquals(manager.is_pull_request(), True)

        gha_env = {"GITHUB_ACTIONS": "true",
                   "GITHUB_REF": "refs/heads/testing",
                   "GITHUB_EVENT_NAME": "push"}
        with tools.environment_append(gha_env):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), "testing")
Exemplo n.º 4
0
    def login(self):
        if self.variables.docker_upload_only_when_stable:
            printer = Printer()
            ci_manager = CIManager(printer)
            if ci_manager.get_branch() != "master" or ci_manager.is_pull_request():
                logging.info("Skipped login, is not stable branch")
                return

        if not self.variables.docker_upload:
            logging.info("Skipped login, DOCKER_UPLOAD is not activated")
            return

        if not self.variables.docker_password:
            logging.warning("Skipped login, DOCKER_PASSWORD is missing!")
            return

        if not self.variables.docker_login_username:
            logging.warning("Skipped login, DOCKER_LOGIN_USERNAME is missing!")
            return

        logging.info("Login to Docker hub account")
        result = subprocess.call([
            "docker", "login", "-u", self.variables.docker_login_username, "-p",
            self.variables.docker_password
        ])
        if result != os.EX_OK:
            raise RuntimeError("Could not login username %s "
                               "to Docker hub." % self.variables.docker_login_username)

        logging.info("Logged in Docker hub account with success")
        self.loggedin = True
Exemplo n.º 5
0
    def test_azure_instance(self):
        with tools.environment_append({
                "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI": "https://dev.azure.com/",
                "BUILD_SOURCEVERSIONMESSAGE": "msg",
                "BUILD_SOURCEVERSION":
                "506c89117650bb12252db26d35b8c2385411f175",
                "BUILD_SOURCEBRANCH": "mybranch",
                "BUILD_REASON": "manual",
        }):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), "mybranch")
            self.assertEquals(manager.get_commit_msg(), "msg")
            self.assertEquals(manager.get_commit_id(),
                              "506c89117650bb12252db26d35b8c2385411f175")
            self.assertEquals(manager.is_pull_request(), False)

        with tools.environment_append({
                "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI": "https://dev.azure.com/",
                "BUILD_SOURCEVERSIONMESSAGE": "msg",
                "BUILD_SOURCEVERSION":
                "506c89117650bb12252db26d35b8c2385411f175",
                "BUILD_SOURCEBRANCH": "refs/heads/testing/version",
                "BUILD_REASON": "PullRequest",
        }):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), "testing/version")
            self.assertEquals(manager.get_commit_msg(), "msg")
            self.assertEquals(manager.get_commit_id(),
                              "506c89117650bb12252db26d35b8c2385411f175")
            self.assertEquals(manager.is_pull_request(), True)

        with tools.environment_append({
                "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI": "https://dev.azure.com/",
                "BUILD_SOURCEVERSIONMESSAGE": "msg",
                "BUILD_SOURCEVERSION":
                "506c89117650bb12252db26d35b8c2385411f175",
                "BUILD_SOURCEBRANCH": "refs/heads/stable/version",
                "BUILD_REASON": "IndividualCI",
        }):
            manager = CIManager(self.printer)
            self.assertEquals(manager.get_branch(), "stable/version")
            self.assertEquals(manager.get_commit_msg(), "msg")
            self.assertEquals(manager.get_commit_id(),
                              "506c89117650bb12252db26d35b8c2385411f175")
            self.assertEquals(manager.is_pull_request(), False)
Exemplo n.º 6
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import requests
from cpt import ci_manager
from cpt.ci_manager import CIManager
from cpt.printer import Printer

if __name__ == "__main__":
    manager = CIManager(Printer())
    response = None
    if ci_manager.is_travis():
        if manager.get_branch() == "stable/3.6.1" and \
           not manager.is_pull_request() and \
           os.getenv("CONAN_CLANG_VERSIONS") == "6.0" and \
           os.getenv("CONAN_ARCHS") == "x86_64" and \
           os.getenv("TRAVIS_TOKEN"):
            json_data = {"request": {"branch": "release/3.6.1"}}
            headers = {
                "Authorization": "token %s" % os.getenv("TRAVIS_TOKEN"),
                "Travis-API-Version": "3"
            }
            response = requests.post(
                url=
                "https://api.travis-ci.com/repo/bincrafters%2Fprotobuf-integration-test/requests",
                json=json_data,
                headers=headers)
        else:
            print("Travis CI job does not match:")
            print("BRANCH: %s" % manager.get_branch())
            print("PULL REQUEST: %s" % manager.is_pull_request())
Exemplo n.º 7
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import requests
from cpt import ci_manager
from cpt.ci_manager import CIManager
from cpt.printer import Printer

if __name__ == "__main__":
    manager = CIManager(Printer())
    response = None
    if manager.get_branch() == "stable/3.6.1" and not manager.is_pull_request(
    ) and os.getenv("ARCH") == "x86":
        if ci_manager.is_travis():
            json_data = {"request": {"branch": "release/3.6.1"}}
            headers = {
                "Authorization": "token %s" % os.getenv("TRAVIS_TOKEN"),
                "Travis-API-Version": "3"
            }
            response = requests.post(
                url=
                "https://api.travis-ci.com/repo/bincrafters%2Fprotobuf-integration-test/requests",
                json=json_data,
                headers=headers)
        elif ci_manager.is_appveyor():
            json_data = {
                "accountName": "BinCrafters",
                "projectSlug": "protobuf-integration-test",
                "branch": "release/3.6.1"
            }
            headers = {