我想问一下,如果我使用詹金斯.如何获取所有工件列表并下载它,但不能从jenkins Web界面获取.我想为某些目标制作自己的网络界面.
有没有jenkins API可以做到这一点?
您可以通过浏览任何存储库看到Maven 构建工件包含.pom文件。这些文件的内容看起来很像pom.xml文件。这些文件从哪里来?它们有什么用?此外,构建工件maven-metadata.xml至少在 上具有文件,search.maven.org并且这些文件具有与文件基本相同的内容.pom。这有什么关系?
在Artifactory中,我有一个工件“ consumersvc”,并且有多个版本:1.0.0、1.1.0、1.2.0等
现在,对于这些工件版本中的每一个,都有一些属性附加到该工件xxx的构建工件上,例如:svnURL,svnChangeSetNumber等。
有什么办法可以使用Rest API等获取此信息。
我尝试了以下操作,但它列出了所有具有此property = value的工件,但我正相反。
http://myartifactorysrvr.my.company.com:8080/artifactory/api/search/prop?svnURL=*
Run Code Online (Sandbox Code Playgroud)
然后,它将在JSON输出中输出信息,并在Artifactory中显示此属性设置为任何值的所有工件。我要寻找的是如何获取Artifactory中任何工件的所有属性(svnURL和svnChangeSetNumber)?
我正在运行一个 TeamCity 代理,它生成一个 docker 容器,在该 (php) 容器内运行多个任务。比如phpunit、phplint和composer。如果所有测试都通过,我会压缩容器内的内容,它将创建一个 phpproject.zip。
完成后,我想将该 phpproject.zip 作为工件从 docker 容器内部推送回 TeamCity 服务器。
我的 docker 容器正在使用 --rm 参数运行以在脚本完成后删除容器。
这可能吗?
蒂姆
GradleArtifactRepository实现所做的所有事情都是提供用于获取工件的源。例如,它可以是 plain 结构、maven repo 等。我知道我可以使用一些自定义源构建自己的存储库实现。
但是,我需要一些不同的东西:“挂钩”工件解析和获取内部。例如,当 Gradle 检查是否在我的foo:bar:1.0存储库实现内部时,我希望能够捕获此请求并从我想要的任何地方返回工件。(显然,它不是静态位置,否则现有存储库实现之一就足够了)。
换句话说,当 gradle 要求时,foo:bar:1.0我想控制工件 jar 的返回 - 拥有一个自定义的依赖关系解析器。
有一个老问题:https ://issues.gradle.org/browse/GRADLE-1805要求这样做。
Gradle 可以做到这一点吗?
我想下载一个位于封闭(经过身份验证)的 Nexus 上的 Jar。我想通过 Maven 来做到这一点,与技术无关(例如它可以与 Nexus 或 Artifcatory 一起使用)。
我发现了这个有趣的插件:https://maven.apache.org/plugins/maven-dependency-plugin/get-mojo.html,它适用于中央存储库或任何“开放”存储库上的工件。
我的命令是:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get -Dartifact=com.test.job:job-template:1.0.0:jar:jar-with-dependencies -Ddest=/tmp/test.jar -DremoteRepositories=http://nexus.test.local/nexus/content/repositories/test-releases/
Run Code Online (Sandbox Code Playgroud)
我收到错误:“未授权,ReasonPhrase:未经授权”。当然,想要得到这件神器,我必须要经过认证。我如何向该命令提供我的凭据?我的 Maven settings.xml 已包含此本地存储库的凭据,但该命令不会读取这些凭据(似乎合乎逻辑)。
谢谢!
我有这个gradle脚本:
def configureUploadArtifacts(groupId, repoUrl, _packaging) {
def gpgKeyId = System.getenv('GPG_KEY_ID')
def gpgPassword = System.getenv('GPG_KEY_PASSWORD')
def gpgFile = System.getenv('PATH_TO_GPG_FILE')
project.group = groupId;
project.archivesBaseName = name
project.version = getVersionNameFromFile()
ext."signing.keyId" = gpgKeyId
ext."signing.password" = gpgPassword
ext."signing.secretKeyRingFile" = gpgFile
uploadArchives {
apply plugin: 'maven'
apply plugin: 'signing'
signing {
sign configurations.archives
}
def userName = System.getenv('OSSRH_USER_NAME');
def password = System.getenv('OSSRH_PASSWORD');
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: userName, password: password)
}
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication(userName: …Run Code Online (Sandbox Code Playgroud) 摇篮版本:3.5
我正在尝试发布我的自定义 RPM 工件,但文档确实不清楚应该如何完成。
这是我们发布 gradle 脚本的摘录:
project(':path:to:rpm:project') {
apply plugin: "java"
apply plugin: "maven-publish"
publishing {
repositories {
maven {
credentials {
username 'aaa'
password 'sss'
}
url "https://url/to/repository"
}
}
publications {
pub(MavenPublication) {
artifact 'our-software-rpm' {
}
}
}
}
task rpmArtifact(dependsOn: 'installerMakeRpm') {
ext.rpmfile = file("$project.buildDir/tmp/rpmbuild/RPMS/x86_64/our-software.x86_64.rpm")
}
artifacts {
archives(rpmArtifact.rpmfile) {
name 'our-software-rpm'
type 'rpm'
builtBy rpmArtifact
}
}
assemble.dependsOn rpmArtifact
}
Run Code Online (Sandbox Code Playgroud)
我不确定我应该如何在发布关闭中引用自定义 RPM 工件。使用工件名称 ('our-software-rpm') 不起作用,使用任务名称 (rpmArtifact) 也不起作用。所以我该怎么做?
此外,该项目应用了 java 插件来获取一个实际上可以接受文件工件的 ArtifactHandler - DefaultArtifactHandler 不适用于此。有没有更好的选择,因为这个项目真的不是一个java项目,我不想应用我真的不需要的插件。
我正在使用 GitHub Actions,有 2 项工作,一项用于上传文件夹,另一项将使用该文件夹创建图像。
工作一:
- name: Upload Build
uses: actions/upload-artifact@v1
with:
name: StandaloneLinux64
path: build/StandaloneLinux64
Run Code Online (Sandbox Code Playgroud)
工作2:
- uses: actions/download-artifact@v1
with:
name: StandaloneLinux64
path: Docker/StandaloneLinux64
Run Code Online (Sandbox Code Playgroud)
这会添加存档 (zip/tar/tar.gz) 还是会重新创建文件夹结构?我查看了文档,但找不到明确的地方。
我正在使用 Azure DevOps 创建一个管道,该管道将有一个阶段来构建和发布函数应用程序作为工件,然后在后续阶段通过所需的生命周期部署函数应用程序。
我不确定的是我是否需要在后续部署阶段显式下载构建和发布阶段创建的人工制品?有很多关于此的文档,但它有点模棱两可,我看不到提到这个特定问题。
这是我的管道的一个例子。的Dev,Staging和Production分期纳入部署策略,并在许多场合都会有这两个阶段的部署之间的延迟(也许天)。
stages:
- stage: Publish
displayName: Publish Function App
jobs:
- ...
- stage: Dev
displayName: Deploy Dev
jobs:
- ...
- stage: Staging
displayName: Deploy Staging
jobs:
- ...
- stage: Production
displayName: Deploy Production
jobs:
- ...
Run Code Online (Sandbox Code Playgroud)
为了发布包含我的函数应用程序的人工制品,我使用publish了Publish舞台最后一个作业中的步骤。
- publish: $(System.DefaultWorkingDirectory)
artifact: FunctionApp
Run Code Online (Sandbox Code Playgroud)
我的问题是,我是否需要download在Dev、Staging和Production部署阶段使用相应的步骤,或者人工制品始终可用$(Pipeline.Workspace)?请记住,我不会立即完成部署阶段。
- download: current
artifact: FunctionApp
Run Code Online (Sandbox Code Playgroud) artifact ×10
gradle ×3
api ×2
maven ×2
artifactory ×1
azure-devops ×1
dependencies ×1
docker ×1
download ×1
github ×1
jenkins ×1
jenkins-api ×1
php ×1
pom.xml ×1
properties ×1
publish ×1
repository ×1
rest ×1
staging ×1
teamcity ×1