Esempio n. 1
0
    def test_no_tasks(self, mock_evg_api, mock_version, mock_build):
        mock_evg_api.build_by_id.return_value = mock_build
        mock_build.get_tasks.return_value = []

        urls = evergreen_conn.get_compile_artifact_urls(
            mock_evg_api, mock_version, "test")
        self.assertEqual(urls, {})
Esempio n. 2
0
    def get_latest_urls(self, version):
        """Return latest urls."""
        urls = {}

        evg_project = f"mongodb-mongo-v{version}"
        if version == "master":
            evg_project = "mongodb-mongo-master"

        if evg_project not in self.config.evergreen_projects:
            return urls

        LOGGER.debug("Found evergreen project.", evergreen_project=evg_project)
        # Assuming that project names contain <major>.<minor> version
        major_minor_version = version

        buildvariant_name = self.get_buildvariant_name(major_minor_version)
        LOGGER.debug("Found buildvariant.",
                     buildvariant_name=buildvariant_name)

        evg_versions = evergreen_conn.get_evergreen_versions(
            self.evg_api, evg_project)

        for evg_version in evg_versions:
            if buildvariant_name not in evg_version.build_variants_map:
                buildvariant_name = self.fallback_to_generic_buildvariant(
                    major_minor_version)

            curr_urls = evergreen_conn.get_compile_artifact_urls(
                self.evg_api, evg_version, buildvariant_name)
            if "Binaries" in curr_urls:
                urls = curr_urls
                break

        return urls
Esempio n. 3
0
    def get_urls(self, version):
        """Return urls."""
        git_tag, commit_hash = github_conn.get_git_tag_and_commit(
            self.github_oauth_token, version)
        LOGGER.info("Found git attributes.",
                    git_tag=git_tag,
                    commit_hash=commit_hash)

        evg_project, evg_version = evergreen_conn.get_evergreen_project_and_version(
            self.config, self.evg_api, commit_hash)
        LOGGER.debug("Found evergreen project.", evergreen_project=evg_project)
        try:
            major_minor_version = re.findall(r"\d+\.\d+", evg_project)[-1]
        except IndexError:
            major_minor_version = "master"

        buildvariant_name = self.get_buildvariant_name(major_minor_version)
        LOGGER.debug("Found buildvariant.",
                     buildvariant_name=buildvariant_name)
        if buildvariant_name not in evg_version.build_variants_map:
            buildvariant_name = self.fallback_to_generic_buildvariant(
                major_minor_version)

        urls = evergreen_conn.get_compile_artifact_urls(
            self.evg_api, evg_version, buildvariant_name)

        return urls
Esempio n. 4
0
    def test_no_push_task(self, mock_evg_api, mock_version, mock_build, mock_compile_task):
        mock_evg_api.build_by_id.return_value = mock_build
        mock_compile_task.display_name = "compile"
        mock_compile_task.status = "success"
        mock_build.get_tasks.return_value = [mock_compile_task]

        urls = evergreen_conn.get_compile_artifact_urls(mock_evg_api, mock_version, "test")
        self.assertEqual(urls, {})
Esempio n. 5
0
    def test_urls_found(self, mock_evg_api, mock_version, mock_build,
                        mock_compile_task, mock_push_task, mock_artifact):
        expected_urls = {
            "Binaries":
            "https://mciuploads.s3.amazonaws.com/mongodb-mongo-master/ubuntu1804/90f767adbb1901d007ee4dd8714f53402d893669/binaries/mongo-mongodb_mongo_master_ubuntu1804_90f767adbb1901d007ee4dd8714f53402d893669_20_11_30_03_14_30.tgz"
        }
        mock_evg_api.build_by_id.return_value = mock_build
        mock_artifact.name = "Binaries"
        mock_artifact.url = expected_urls["Binaries"]
        mock_compile_task.display_name = "compile"
        mock_compile_task.artifacts = [mock_artifact]
        mock_compile_task.status = "success"
        mock_push_task.display_name = "push"
        mock_push_task.status = "success"
        mock_build.get_tasks.return_value = [mock_compile_task, mock_push_task]

        urls = evergreen_conn.get_compile_artifact_urls(
            mock_evg_api, mock_version, "test")
        self.assertEqual(urls, expected_urls)