我正在尝试将旧式项目基础工作流转换为基于Jenkins的管道.在浏览文档时,我发现有两种不同的语法命名scripted和declarative.比如declarative最近的Jenkins web 语法发布(2016年底).虽然有一个新的语法版本,但Jenkins仍然支持脚本语法.
现在,我不确定这两种类型中哪一种最适合.scripted语法很快就会被弃用?那么declarativeJenkins管道的未来会是什么?
任何可以分享关于这两种语法类型的想法的人.
我在github上有一个项目,它有大量的单元测试(使用mocha作为node.js).
我想通过在每个页面上显示通过/失败的测试来炫耀.我注意到Github上的其他项目正在这样做.

我一直无法找到有关如何显示测试状态的任何文档.
我正在使用Jenkins 2来编译Java项目,我想从pom.xml中读取该版本,我遵循这个例子:
https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL.md
这个例子表明:
似乎访问文件系统存在一些安全问题,但我无法弄清楚它给出了什么(或为什么)这个问题:
我只是做了一个与示例有点不同的事情:
def version() {
String path = pwd();
def matcher = readFile("${path}/pom.xml") =~ '<version>(.+)</version>'
return matcher ? matcher[0][1] : null
}
Run Code Online (Sandbox Code Playgroud)
我在运行'version'方法时遇到的错误:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object (org.codehaus.groovy.runtime.GStringImpl call org.codehaus.groovy.runtime.GStringImpl)
at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectMethod(StaticWhitelist.java:165)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:117)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:103)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:15)
at WorkflowScript.run(WorkflowScript:71)
at ___cps.transform___(Native Method)
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:55)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:106)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:100)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79)
at sun.reflect.GeneratedMethodAccessor408.invoke(Unknown Source) …Run Code Online (Sandbox Code Playgroud) 我一直在处理在我的公司扩展CI的问题,同时试图找出在CI和多个分支机构中采取哪种方法.stackoverflow,多个功能分支和持续集成有类似的问题.我已经开始了一个新的,因为我想进一步讨论并在问题中提供一些分析.
到目前为止,我发现我可以采取两种主要方法(或者其他一些方法).
所以,如果我想为他们自己的自定义分支提供开发人员,我需要Jenkins的特殊工具(API或shellcripts或其他什么?)并处理扩展.或者我可以告诉他们更频繁地合并到DEV并且在自定义分支上没有CI.您会选择哪一个或有其他选择?
我们有几台构建机器,每台机器都运行一个TeamCity构建代理.每台机器都很强大,我们想在同一台机器上运行几个构建代理.
这可能,而不使用虚拟化?是否有TeamCity的高质量替代品支持这一点?
我最近更新了我的一个hudson版本的配置.构建历史记录不同步.有没有办法清除我的构建历史?
谢谢,麻烦您了
我在詹金斯有两个工作,两个都需要相同的参数.
如何使用参数运行第一个作业,以便在触发第二个作业时使用相同的参数?
npm ci这是我在 GitHub Action 文件中运行命令安装依赖项时遇到的问题。
我正在开发一个博览会管理的应用程序,并用作GitHub ActionsCI 来触发构建,每当我将代码推送到developmemt分支时。
这是我的构建脚本:
name: EAS PIPELINE
on:
push:
branches:
- development
workflow_dispatch:
jobs:
build:
name: Install and build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: Setup Expo
uses: expo/expo-github-action@v6
with:
expo-version: 4.x
token: ${{ secrets.EXPO_TOKEN }}
expo-cache: true
- name: Install dependencies
run: npm ci
- name: Build on EAS
run: EAS_BUILD_AUTOCOMMIT=${{1}} npx eas-cli …Run Code Online (Sandbox Code Playgroud) 我的公司正在考虑改变持续集成服务器(我不会说我们现在有哪一个,所以我不会反对你的反应:))我想知道是否有人有任何建议?最佳用户体验,维护难度等......
我们的代码都在java中,我们使用ANT作为构建工具.