task-service jenkins file

Android Jenkins CI/CD流水线实战:Gradle+SDK+Jenkins三阶集成 持续集成(CI)是现代移动开发的基础能力,其核心在于构建过程的自动化、可复现与可审计。Android构建区别于传统Java项目,依赖Android SDK提供API编译支持,由Gradle作为构建‘操作系统’管理任务流与依赖,再通过Jenkins实现跨环境调度与流程编排。这一技术栈组合解决了手工打包易错、多设备适配混乱、签名与渠道包管理低效等高频痛点。实践中,JDK版本与AGP的兼容性、SDK命令行部署规范、Gradle Wrapper固化及参数注入机制,共同构成稳定流水线的底层支柱。本文聚焦Android 阅读详情

pipeline {
  agent { label 'wing-node-large' }

  environment {
      REDIS_PORT = getRandomPort()
      MONGO_PORT = getRandomPort()
      ECR_URI = '633349536424.dkr.ecr.cn-north-1.amazonaws.com.cn'
      SONARQUBE_BASE_URL='https://sonarqube.syriusrobotics.cn'
      INTERFACE_DOCUMENT_URL='https://confluence.syriusrobotics.cn/x/p15GAQ'
  }

  stages {
    stage('RealCheckout') {
      steps {
        checkout([$class               : 'RepoScm',
                  repoUrl              : 'ssh://jenkins@gerrit.syriusrobotics.cn:29418/git-repo',
                  manifestRepositoryUrl: 'ssh://jenkins@gerrit.syriusrobotics.cn:29418/manifests',
                  manifestBranch       : 'master',
                  manifestFile         : 'flexgalxy/templar/task_service.xml',
                  currentBranch        : false,
                  forceSync            : true])
        checkout([$class           : 'GitSCM',
                  userRemoteConfigs: [[url: 'ssh://jenkins@gerrit.syriusrobotics.cn:29418/devops/continuous_integration']],
                  branches         : [[name: '*/master']],
                  extensions       : [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'continuous_integration']]
        ])
      }
    }
    stage('Download') {
      steps {
        sh '''#!/bin/bash
        set -x
        ./continuous_integration/scripts/syrius_download \
          --project $GERRIT_PROJECT \
          --change-number $GERRIT_CHANGE_NUMBER \
          --patch-set $GERRIT_PATCHSET_NUMBER
      '''
      }
    }
    stage('Build') {
      steps {
        withCredentials([usernamePassword
        (
                      credentialsId: 'maven-credencials',
                      usernameVariable: 'username', 
                      passwordVariable: 'password'
        )]) {
        sh '''
        docker run --rm --add-host=maven.syriusrobotics.cn:161.189.43.115   --net=host -P -v $PWD/src:/home/gradle/project -v /home/ubuntu/jenkins-data/gradle/.gradle:/home/gradle/.gradle  -v /home/ubuntu/jenkins-data/maven/.m2:/root/.m2  -w /home/gradle/project/task_service_parent gradle gradle build -i --stacktrace -x test -PbuildNumber=$BUILD_NUMBER  -PmavenUsername=$username -PmavenPassword=$password
        '''}
      }
    }

    stage('Run Test') {
      steps {
        withCredentials([usernamePassword
        (
                      credentialsId: 'maven-credencials',
                      usernameVariable: 'username', 
                      passwordVariable: 'password'
        )]){
        sh '''
        docker run -p $REDIS_PORT:6379 --name ci_redis_$REDIS_PORT -d redis
        docker run -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=example -p $MONGO_PORT:27017 --name ci_mongo_$MONGO_PORT -d mongo
        docker run --rm --add-host=maven.syriusrobotics.cn:161.189.43.115   --net=host -P -v $PWD/src:/home/gradle/project -v /home/ubuntu/jenkins-data/gradle/.gradle:/home/gradle/.gradle  -v /home/ubuntu/jenkins-data/maven/.m2:/root/.m2 --env REDIS_PORT=$REDIS_PORT --env MONGO_PORT=$MONGO_PORT -w /home/gradle/project/task_service_parent gradle gradle -i --stacktrace clean test jacocoTestReport -PbuildNumber=$BUILD_NUMBER  -PmavenUsername=$username -PmavenPassword=$password
        docker stop ci_redis_$REDIS_PORT
        docker rm ci_redis_$REDIS_PORT
        docker stop ci_mongo_$MONGO_PORT
        docker rm ci_mongo_$MONGO_PORT
        '''}
      }
    }

    stage('Build artifacts ') {
      steps {
        withCredentials([usernamePassword
        (
                      credentialsId: 'maven-credencials',
                      usernameVariable: 'username', 
                      passwordVariable: 'password'
        )]) {
         sh '''
         docker run --rm  --net=host -P -v $PWD/src:/home/gradle/project -v /home/ubuntu/jenkins-data/gradle/.gradle:/home/gradle/.gradle  -v /home/ubuntu/jenkins-data/maven/.m2:/root/.m2  -w /home/gradle/project/task_service_parent gradle:jdk14 gradle clean build -x test -PbuildNumber=$BUILD_NUMBER    -PmavenUsername=$username -PmavenPassword=$password
         '''
        }
      }
    }


    stage('Build Docker Image To ECR') {
      steps {
          sh '''#!/bin/bash
          set -e
          aws ecr get-login-password --region cn-north-1 | docker login --username AWS --password-stdin ${ECR_URI}
          '''
          buildImageAndPush('./src/task_service/', env.ECR_URI+"/flex-galaxy/templar/task-service")
          buildImageAndPush('./src/order_task_schedule_service/', env.ECR_URI+"/flex-galaxy/templar/order-schedule")
      }
    }

  }

 post {
    always{
      pushOrderScheduleResultToPulse()
      pushTaskServiceResultToPulse()
    }

  }

}


def buildImageAndPush(path,imageName) {
    def version = getVersion()
    echo version
    def image = docker.build(imageName + ":" + version, path)
    image.push()
}
def pushOrderScheduleResultToPulse(){
  def version = getVersion()
  build job: 'push_result_to_pulse_patches', propagate: true, wait: false, parameters: [
    [$class: 'StringParameterValue', name: 'projectName', value: "flexgalaxy-templar-order-schedule"],
    [$class: 'StringParameterValue', name: 'artifactName', value: "order-schedule-${version}"],
    [$class: 'StringParameterValue', name: 'testReportUrl', value: "${SONARQUBE_BASE_URL}/code?id=task_service_parent&selected=task_service_parent%3Aorder_task_schedule_service%2Fsrc"],
    [$class: 'StringParameterValue', name: 'pulseType', value: "UpdateArtifactsTestResult"],
    [$class: 'StringParameterValue', name: 'currentEnv', value: "UT"],
    [$class: 'StringParameterValue', name: 'buildResult', value: "${currentBuild.result}"],
  ]
}
def pushTaskServiceResultToPulse(){
  def version = getVersion()
  build job: 'push_result_to_pulse_patches', propagate: true, wait: false, parameters: [
    [$class: 'StringParameterValue', name: 'projectName', value: "flexgalaxy-templar-task-service"],
    [$class: 'StringParameterValue', name: 'artifactName', value: "task-service-${version}"],
    [$class: 'StringParameterValue', name: 'testReportUrl', value: "${SONARQUBE_BASE_URL}/code?id=task_service_parent&selected=task_service_parent%3Atask_service%2Fsrc"],
    [$class: 'StringParameterValue', name: 'pulseType', value: "UpdateArtifactsTestResult"],
    [$class: 'StringParameterValue', name: 'currentEnv', value: "UT"],
    [$class: 'StringParameterValue', name: 'buildResult', value: "${currentBuild.result}"],
  ]
}

def getVersion(){
  def buildVersion = readFile(file: 'src/task_service/build.version')
    println(buildVersion)
    def version = String.format("%s.%s",buildVersion, env.BUILD_NUMBER)
    echo version
    return version
}


def getRandomPort() {
    def port = (int)(Math.random()*50000) + 10000
    return port
}

Unity游戏多渠道打包自动化:基于Jenkins与Fastlane的CI/CD实战方案 持续集成与持续部署(CI/CD)是现代软件工程的核心实践,旨在通过自动化构建、测试和部署流程,提升开发效率与软件质量。其核心原理在于将代码变更自动触发一系列标准化操作,减少人工干预,实现快速、可靠的交付。在游戏开发领域,这一技术价值尤为凸显,能够有效应对多平台、多版本、高频次迭代的复杂需求。特别是在Unity移动游戏开发中,面对iOS、Android及众多国内渠道(如华为、小米、TapTap)的SDK集成、证书管理和商店上传等重复性工作,手动处理极易出错且耗时费力。应用自动化流水线,可以将这些繁琐环节串联, 阅读详情

相关推荐

Qoder 1.0:Task Runtime驱动的智能体工作台原理与实践

智能体(Agent)是当前AI原生应用的核心范式,其本质是将大模型能力封装为可规划、可调度、可验证的任务执行单元。Task Runtime作为智能体落地的关键基础设施,通过输入契约、执行计划、工具沙箱和产物契约四大硬约束,解决了传统LLM调用中边界模糊、路径不可控、产物不可信等工程化瓶颈。它不追求单次生成速度,而聚焦于任务交付的确定性、安全性和可审计性,使自然语言意图能稳定转化为生产级代码与自动化流程。本文以Qoder 1.0为典型,深入解析Task Runtime如何支撑跨工具编排、业务语义理解与组织知识

djph26741的博客 410

Ubuntu 20.04 安装 Jenkins 失败的三大系统级原因

Jenkins 是一款广泛使用的开源持续集成(CI)服务器,其核心依赖于 Java 运行时环境与 Linux 系统服务管理机制。在 Ubuntu 20.04 这类长期支持(LTS)发行版中,因 Java 版本策略变更、systemd 服务单元加载顺序缺陷及 APT 仓库生命周期错位,导致默认安装极易启动失败。典型现象包括端口占用、熵池阻塞(/dev/random 卡死)、DNS 解析异常与插件下载超时。这些问题本质是发行版底层组件(如 OpenJDK 安全配置、systemd 环境变量继承、systemd-

weixin_33798152的博客 410

TRAE协议驱动的企业级AI编码工作流架构解析

AI编程助手正从个人开发工具演进为可嵌入CI/CD的企业级基础设施。其核心不再仅是大语言模型能力,而在于任务解析、推理仲裁、动作编排与执行沙箱构成的结构化闭环——即TRAE协议。该协议解决企业最关切的三大痛点:代码生成结果不可审计、上下文理解存在幻觉、安全策略无法动态注入。通过将模型调用约束在标准化JSON Schema内,并与Jenkins、SonarQube、Jira等现有工具链深度集成,TRAE使GLM-4.7真正具备生产就绪能力。尤其在金融、电信等强合规场景中,其确定性生成、策略即代码(Policy

weixin_33904756的博客 344

jenkinsfile

pipeline { agent { label 'ci22' } environment { SNOAR_HOST_URL = 'https://sonarqube.syriusrobotics.cn/' ECR_URI = '633349536424.dkr.ecr.cn-north-1.amazonaws.com.cn' INTERFACE_DOCUMENT_URL = 'https://docs.flexgalaxy.ai/en/flagship/alp...

fish_fish_java的博客 706

Claude Code CLI 安装与 VS Code 集成实战指南

Claude Code 是一款面向工程化开发的 AI 编程助手,其核心并非传统插件,而是以 CLI 为运行引擎、VS Code 为交互界面、项目上下文为决策依据的 agentic 编程系统。它依赖 Node.js 18+ 提供的 Web Crypto API 实现安全认证,通过深度解析 Git 状态、pnpm-lock.yaml 和 CLAUDE.md 等元数据理解项目结构,从而生成符合真实约束的代码变更。该工具在 Next.js、tRPC、Prisma 等现代前端与全栈项目中展现出强上下文感知能力,可无缝

462

Ansible入门:从零构建可执行的运维自动化体系

Ansible是一种基于SSH、无Agent的配置管理与自动化运维工具,其核心原理是通过YAML格式的playbook定义声明式任务流,结合inventory动态管理目标主机,并调用module实现幂等操作。这种设计赋予它极低的部署门槛、天然的跨平台兼容性及强可审计性,技术价值在于将人工运维经验固化为可版本控制、可重复验证、可CI/CD集成的代码资产。典型应用场景涵盖批量服务器配置、Web集群部署、混合云策略下发、安全基线加固及老旧系统巡检等。本文围绕playbook编写规范、inventory分层管理、核

weixin_34241036的博客 315

流水线中使用 docker in pod 方式构建容器镜像

上个月参加了 Rancher 社区举办的 《Dockershim 即将被移除,你准备好了么?[1]》直播分享后,得知自 1.24 版本之后,Kubernetes 社区将正式放弃对 dock...

云原生实验室 2302

Hermes Agent轻量部署实战:腾讯云轻量服务器自动化交付

Hermes Agent是一种面向边缘与终端的轻量级自动化任务执行引擎,其核心原理是将部署、文件上传、命令执行、健康检查等原子操作封装为可版本化、可审计、可回滚的YAML任务流,摒弃传统CI/CD工具的中心化依赖与抽象冗余。相比Jenkins的资源开销、Ansible的学习门槛和Shell脚本的不可靠性,Hermes Agent以单二进制+本地直控模式,在低配云服务器上实现高可控交付,技术价值在于极简安装、内置校验(如SHA256)、上下文感知执行与细粒度可观测性(日志/指标/状态)。典型应用场景包括个人开

weixin_34015336的博客 514

Jenkins Pipeline 手记(3)—— 自定义Checkout的陷阱

引言 最近在pipeline中checkout代码时遇到了无法序列化的问题。这个问题只在特定的场景下能重现,虽然影响不大,但如果深入研究一下,可以加深对Jenkins Pipeline的理解。 问题 我们知道,在使用Multi-branch pipeline时,可以在job的配置中指定源代码的来源,如git url,credentials,clone options,submodule options等等。然后在pipeline中,可以直接调用: checkout scm 下载代码。这个scm对象对象由J

技术玄关 1万+

Tesseral 建立地震模型

0. 前言 本节内容主要是总结如何使用 Tesseral 工具建立模型。 1. 模型建立步骤 设置模型的宽度和深度 此处默认都为1000,之后点击“确定” 建立地层 绘制新的地层 右键点击“New polygon” 绘制地层,设置第二个层的名字和纵波速度 绘制第三层,第三层覆盖在前一个层上 第四层如上,第四层如果是最后一层,绘制该层时,要将深度1000包围。 设置观测系统 设置炮点 设置子波为雷克子波,频率设置为30 检波点设置 运行模型 设置好如上选择后,

weixin_41857483的博客 6539

ST MCSDK V6.2.0实战:手把手教你配置HSO-ST观测器,体验500ms收敛的电机无感控制

本文详细介绍了ST MCSDK V6.2.0中HSO-ST观测器的配置方法,实现500ms内电流收敛的无感电机控制。从环境搭建、核心参数解析到无感启动优化,提供实战技巧和性能调优策略,帮助开发者快速掌握高效电机控制技术。

weixin_28720767的博客 579

pipeline常用插件用法

pipeline 常用插件语句 1、checkout SCM 可以用来下载git仓代码,还可以支持cherry pick 某个patch checkout([$class: 'GitSCM', branches: [[name: '*/master']], userRemoteConfigs: [[url: 'http://git-serv...

weixin_30815469的博客 1133

ComfyUI安装包运行前准备:安装Git

Git 是一个分布式版本控制系统(Version Control System, VCS),用于跟踪和管理文件(尤其是代码)的变更历史。 简单理解就是,git是用来管理文件的版本的,如果有新的版本,就可以使用git来更新。

聚梦小课堂 2万+

【转载】Jenkins代码审查功能的实现方案

原文地址:Jenkins代码审查功能的实现方案 在Jenkins上实现了代码审查功能, 本篇博客记录一下具体的实施方案,主要包括Jenkins、Gerrit Trigger、Git Hook等。 一、目的 为了减少不必要的编译错误,同时提高代码书写质量,可以在Jenkins上实现了代码审查的功能。 Jenkins具有该功能后,将自动对Gerrit上提交的代码进行编

分享技术与经验的博客 3001

国产大模型编程能力深度分析报告(2026年5月更新版)

2026年5月国产大模型编程能力报告显示,主流模型迎来重大升级。DeepSeek V4以1.6T参数创性能新高,Qwen3.6-Plus支持原生多模态编程,MiniMax M2.7转向闭源并优化Agent编码,Kimi K2.6成为商业化成熟的主力模型,GLM-5开源并涨价30%。阿里云百炼推出双轨订阅体系,区分团队和个人开发者需求。各模型在参数规模、上下文长度、性能表现和适用场景上各具优势,国产AI编程服务正加速向订阅制转型,成本效益显著提升。

Willin Wang 的全栈升级指南 1647

卸载Office 16 Click-to-Run Extensibility Component详细步骤

卸载Office 16 Click-to-Run Extensibility Component详细步骤 第一步:按住键盘上的“Win+R”,打开运行窗口 在运行窗口输入“Installer”回车,打开Installer文件夹 第二步:在Installer文件夹红框最右侧,即“大小”后面,右击选择“其他”,找到“主题”,勾选,点击“确定”,添加主题列成功 第三步:在“主题”列找到“Office 16 Click-to-Run Extensibility Component

M_try的博客 3万+

【Jenkins】结合git自动发布

Jenkins + git + maven自动化部署 前提是Jenkins里已经安装好对应的插件了。咱们服务器已经安装好了。 创建一个自由风格的软件项目 在创建完的页面中勾选 丢弃旧的构建 配置git 选择git选项 填写git路径 选择配置过的git账号 修改对应的分支(如果需要的话) 构建 增加一个构建步骤,选择调用顶层Maven目标 pom节点 /var/jenkins_home/workspace/dlanqi.tools.big.file/api/fastloader/pom.xml

Rex的博客 640

国内外主流嵌入式GUI汇总

随着MCU资源增多,处理能力也强了,同时市场需求也增多了GUI功能也越来越丰富了,很多的嵌入式图形库都可以做出绚丽的界面。

m0_69914734的博客 3290

蓝盾 vs Jenkins:3 个核心差异点与 2 个企业级流水线迁移策略

本文对比了腾讯蓝盾与Jenkins在CI/CD流水线领域的3个核心差异点,包括平台架构、插件生态和用户体验,并提供了两种企业级迁移策略。蓝盾的微服务化架构和深度集成能力使其在企业级DevOps场景中表现优异,特别适合需要高效流水线管理的技术团队。

weixin_34408717的博客 380

C#计算八字

private string[] jq = { "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至" };private string[] dz = { "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥", "子" };

m0_72939038的博客 827

31、工程中不确定性量化与优化的全面解析

本文全面解析了工程中不确定性量化与优化的关键方法。针对数据充足与不足两种情况,分别介绍了概率理论和非概率方法在不确定性建模中的应用;系统阐述了采样方法、FORM/SORM、泰勒级数近似等不确定性传播技术;深入比较了RBDO与RDO两种主流优化框架的原理、步骤及适用场景,并通过两杆桁架案例展示了具体实现过程。文章旨在为工程师提供一套完整的从不确定性分析到优化设计的方法论,提升工程系统的可靠性与稳健性。

php55的博客 121

建木替代Jenkins:基于K8s原生Job的声明式CI/CD架构实践

CI/CD是现代软件交付的核心基础设施,其本质是将代码变更自动转化为可验证、可部署的运行态服务。传统脚本驱动型工具(如Jenkins)依赖插件生态与Groovy引擎,在规模增长后易陷入配置耦合、权限失控与故障扩散困境;而声明式编排范式通过JSON/YAML定义任务拓扑,结合Kubernetes Job等原生资源实现执行环境隔离、弹性伸缩与RBAC权限收敛。建木正是这一演进路径的典型代表——它不管理执行过程,只编排K8s资源,从而天然具备环境一致性、故障自愈性与基础设施无关性。本文聚焦于从Jenkins迁移至

336

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Azure DevOps编排多云MLOps:SageMaker与Azure协同实战

MLOps是将机器学习模型从实验走向生产的关键工程范式,其核心在于自动化、可审计与跨环境一致性。在多云架构日益普及的今天,如何实现AWS SageMaker与Azure DevOps的深度协同,成为金融、零售等强合规行业落地AI的核心挑战。本文聚焦MLOps流水线的跨云编排原理,解析以Azure DevOps为统一调度中枢的技术价值——既复用企业现有CI/CD成熟度,又满足GDPR、ISO 27001等审计要求;涵盖OIDC临时凭证安全集成、Custom Task原子化封装、蓝绿部署零停机保障等典型应用场景

weixin_30732487的博客 353

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Hermes Agent自进化智能体:从任务调度到自动化部署实战指南

智能体(Agent)作为人工智能领域的重要技术概念,通过感知环境、决策执行来实现自主任务处理。其核心原理在于结合大语言模型的推理能力与外部工具的操作能力,形成闭环的智能系统。这种技术架构的价值在于能够将AI能力真正落地到实际业务场景中,解决重复性工作自动化需求。在应用层面,智能体技术广泛应用于任务调度、自动化部署、智能客服等场景。以Hermes Agent为例,其独特的自进化记忆系统能够实现跨会话的知识积累,通过持久化记忆和技能自学习机制,让智能体具备越用越聪明的个性化服务能力。在实际工程实践中,这种框架特

快马扬鞭须努力! 418

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

企业级自动化运维神器Ansible

ansible是自动化运维工具,基于Python开发,分布式,无需客户端,轻量级,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。Ansible特性1) no agents:不需要在被管控主机上安装任何客户端,更新时,只需在操作机上进行一次更新即可(不用安装客户端。分布式的)2) no server:无服务器端,使用时直接运行命令即可。

m0_54563444的博客 1694

Android开发规范:提升团队协作与代码质量的关键实践

在移动应用开发中,Android开发规范是确保代码质量和团队协作效率的基石。通过统一的代码风格、资源管理和组件使用规范,开发者能够有效降低维护成本并提升应用性能。从基础的命名规则(如逆域名包名、驼峰式命名法)到高级的内存优化技巧(如Bitmap处理、线程池配置),规范的建立涉及开发全流程。特别是在大型项目中,规范的执行能显著减少技术债务,这一点在Activity生命周期管理和Service使用等场景中尤为关键。随着项目规模扩大,结合静态检查工具(如detekt)和持续集成(如Jenkins流水线)的规范体系

weixin_30254435的博客 416
上一篇: flagship jenkins file
小时候跟鹅打过架
博客等级 码龄11年 1粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值