示例#1
0
 def push_image(self, data):
     registry_image_name = image_version_util.prepend_registry(
         image_version_util.get_image(data))
     docker.push(registry_image_name)
     slack.on_successful_public_push(image_version_util.get_image(data),
                                     data[pipeline_data.IMAGE_NAME],
                                     data[pipeline_data.IMAGE_SIZE])
     self.log.info('Pushed image "%s".', registry_image_name)
示例#2
0
    def get_change_image_message(image_name, data):

        if str(image_name) == "kth-nodejs-web":
            return ("*{}*: Please change to `FROM kthse/kth-nodejs:sem_ver`. "
                    "Image _kth-nodejs-web_ is depricated. "
                    "Info: https://gita.sys.kth.se/Infosys/kth-nodejs".format(
                        image_version_util.get_image(data)))

        if str(image_name) == "kth-nodejs-api":
            return ("*{}*: Please change to `FROM kthse/kth-nodejs:sem_ver`. "
                    "Image _kth-nodejs-api_ is depricated. "
                    "Info: https://gita.sys.kth.se/Infosys/kth-nodejs".format(
                        image_version_util.get_image(data)))

        return None
示例#3
0
    def push_image(self, data):
        for tag in data[pipeline_data.IMAGE_TAGS]:
            tag_with_registry = f"{environment.get_registry_host()}/{tag}"
            docker.tag_image(data[pipeline_data.LOCAL_IMAGE_ID], tag_with_registry)
            docker.push(tag_with_registry)

        slack.on_successful_private_push_old(image_version_util.get_image(data),
                                         data[pipeline_data.IMAGE_SIZE])
    def write(self, data):
        try:
            file_util.overwite(self.get_ouput_file(), self.get_output(data))

        except IOError:
            self.handle_step_error(
                "*{}* Unable to write build information to file '{}'".format(
                    image_version_util.get_image(data), self.get_ouput_file()))
示例#5
0
    def run_step(self, data):
        from_line = self.get_from_line()
        if self.validate(from_line, data):
            self.log.debug("'FROM:' statement '%s' in Dockerfile is valid.",
                           from_line)
        else:
            message = (
                "*{}s* Dockerfile is based on an old `{}` unsecure image, "
                "please upgrade! See https://hub.docker.com/r/kthse/{}/tags for :docker: images."
                .format(image_version_util.get_image(data), from_line,
                        self.get_base_image_name(from_line)))
            self.log.warning(message)
            slack.on_warning(message)

        return data
示例#6
0
    def run_step(self, data):
        from_line = self.get_from_line()
        if self.validate(from_line, data):
            self.log.info("'FROM:' statement '%s' in Dockerfile is valid.",
                          from_line)
            self.step_ok()
        else:
            text = (
                ":warning: *{}'s* Dockerfile is based on an old `{}` image, "
                "please upgrade! See https://hub.docker.com/r/kthse/{}/tags for :docker: images."
                .format(image_version_util.get_image(data), from_line,
                        self.get_base_image_name(from_line)))
            self.log.warning(text)
            self.step_warning()
            slack.send(text)

        return data
    def get_build_environment(self, data):

        return {
            "gitBranch":
            environment.get_git_branch(),
            "gitCommit":
            environment.get_git_commit(),
            "gitUrl":
            environment.get_git_url(),
            "jenkinsBuild":
            environment.get_build_number(),
            "jenkinsBuildDate":
            environment.get_time(),
            "dockerName":
            data[pipeline_data.IMAGE_NAME],
            "dockerVersion":
            data[pipeline_data.IMAGE_VERSION],
            "dockerImage":
            image_version_util.prepend_registry(
                image_version_util.get_image(data))
        }
示例#8
0
 def run_step(self, data): #pragma: no cover
     if pipeline_data.IMAGE_TAGS not in data:
         data[pipeline_data.IMAGE_TAGS] = []
     self.tag(
         image_version_util.prepend_registry(
             image_version_util.get_image(data)
         ),
         data
     )
     self.tag(
         image_version_util.prepend_registry(
             image_version_util.get_image_only_semver(data)
         ),
         data
     )
     self.tag(
         image_version_util.prepend_registry(
             image_version_util.get_latest_tag(data)
         ),
         data
     )
     return data
示例#9
0
    def run_step(self, data):  #pragma: no cover
        '''
        Tag images build with semver like "appname:1.2.3_abcdefg"

        If PUSH_PUBLIC=True then also tag image without git hash "appname:1.2.3"
        '''

        if pipeline_data.IMAGE_TAGS not in data:
            data[pipeline_data.IMAGE_TAGS] = []

        # Default tagging appname:1.2.3_abcdefg
        self.tag(image_version_util.get_image(data), data)

        if environment.get_push_public():
            # Default tagging appname:1.2.3
            self.tag(image_version_util.get_image_only_semver(data), data)
            # Default tagging appname:latest
            self.tag(image_version_util.get_latest_tag(data), data)

        self.step_ok()

        return data
示例#10
0
 def get_slack_message(self, exception, data):
     return '*{}* Compose dry run failed: \n```...\n{}```\n:jenkins: {}console'.format(
         image_version_util.get_image(data),
         str(exception).replace('`', ' ')[-1000:],
         environment.get_build_url())
示例#11
0
 def get_change_message(self, instruction, data):
     return "*{}*: In `/Dockerfile` change `{}` to: ```\n{}\n```".format(
         image_version_util.get_image(data), instruction,
         self.get_change_to_instruction(instruction))
示例#12
0
 def push_image(self, data):
     for tag in data[pipeline_data.IMAGE_TAGS]:
         docker.push(tag)
         self.log.info('Pushed image %s to KTH registry.', tag)
     slack.on_successful_private_push(image_version_util.get_image(data),
                                      data[pipeline_data.IMAGE_SIZE])