You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins流水线编译完成后上传二进制文件到Google Drive?

答复

这个需求完全可以实现,你只需要在现有流水线的构建、校验环节之后新增上传阶段,借助Google Drive的服务账号鉴权能力搭配对应工具就能完成,不需要额外的复杂插件支持。

前置准备

  • 前往Google Cloud控制台创建服务账号,下载JSON格式的服务账号密钥文件,将该文件存入Jenkins凭证管理,凭证类型选择「Secret File」,自定义凭证ID(比如gdrive-cred)
  • 打开你要上传的目标Google Drive文件夹,给刚才创建的服务账号开通编辑权限,避免上传时提示权限不足
  • 你的现有配置用了bat命令,说明构建节点是Windows系统,提前在节点上安装gdrive命令行工具即可;如果是Linux节点替换成对应版本的工具,或者直接用curl调用Google Drive官方API也可以实现上传,不需要额外装软件。

完整配置示例

你当前编写的Jenkinsfile存在多处引号错位、结构缺失的语法错误,下面是修正后、且包含Google Drive上传逻辑的完整配置:

pipeline {
    agent any
    tools {
        maven 'MAVEN'
        jdk 'Java11'
    }
    stages {
        stage('Clone the repo') {
            steps {
                echo 'Start cloning source code'
                git credentialsId: 'GitHub', url: 'https://github.com/xxxxxxxxxxx.git'
            }
        }
        stage('Maven Build') {
            steps {
                withMaven(mavenSettingsConfig: 'mvn-setting-xml') {
                    bat 'mvn clean -U package'
                }
            }
        }
        stage('Quality gate') {
            steps {
                echo 'Add quality gate check logic here'
                // 质量门禁校验不通过时直接终止流水线,不会进入后续环节
            }
        }
        stage('Unit Test') {
            steps {
                echo 'Running unit tests'
                // 单测失败会自动中断流水线
            }
        }
        stage('SonarQube Test') {
            steps {
                echo 'Running SonarQube code scan'
            }
        }
        stage('Upload Artifacts to Google Drive') {
            // 仅当前面所有阶段全部执行成功,才会进入当前上传阶段
            steps {
                withCredentials([file(credentialsId: 'gdrive-cred', variable: 'GD_KEY_FILE')]) {
                    bat """
                        gdrive service-account import %GD_KEY_FILE%
                        :: 替换下面的字符串为你自己的Google Drive目标文件夹ID,产物路径按实际构建输出位置调整
                        gdrive upload --parent 替换为你的目标文件夹ID target/*.jar target/*.war
                    """
                }
            }
        }
        stage('Deploy') {
            steps {
                echo 'Add deployment logic here'
            }
        }
    }
}

说明

  • Jenkins流水线默认按阶段顺序执行,任意前置阶段执行失败都会直接终止流程,天然符合你「所有构建、校验步骤通过后才上传产物」的要求
  • 如果不想预装gdrive工具,可以直接在步骤里写脚本调用Google Drive的上传API,只需要用服务账号生成有效鉴权token即可,逻辑和命令行调用一致
  • 可以在上传阶段前增加archiveArtifacts步骤,将构建出的jar/war包归档到Jenkins服务器,方便后续回溯历史版本。

内容的提问来源于stack exchange,提问作者Sebastian Ruiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 01:57:10