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)
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")
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
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)
#!/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())
#!/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 = {