在这个快速入门中,管道的成功运行是这样的:
开始之前
在尝试这个快速入门之前,请确保您具备:
- 一个GitHub账户。这是派生示例存储库所必需的。
- 一个JFrog平台账户,或自托管JFrog管道.
- 将Artifactory设置为npm注册表.创建三个存储库:
- 一个远程NPM注册表.远程存储库作为在远程URL上管理的注册中心的缓存代理,例如
https://registry.npmjs.org
.从远程存储库请求的工件(如TGZ文件)将根据需要缓存。 - 一个本地npm注册表。
- 一个虚拟NPM注册表.Artifactory中定义的虚拟存储库聚合来自本地和远程存储库的包。这允许你通过为虚拟存储库定义的一个URL访问本地托管的npm包和远程代理的npm注册表。
当添加虚拟npm注册表时,确保远程和本地npm注册表都被选中,并且默认部署存储库被设置为本地npm注册表。
- 一个远程NPM注册表.远程存储库作为在远程URL上管理的注册中心的缓存代理,例如
- 至少一个节点池。这是所有管道步骤将在其中执行的节点集。有关更多信息,请参见管理管路节点池.
运行这个例子
执行下面的步骤来构建和推送你的npm镜像:
Fork存储库
本例的管线DSL可在npm-example存储库中的JFrogGitHub帐户。
DSL文件是一个包含管道定义的yaml文件。这个例子使用了两个yaml文件:
pipelines.yml
,其中包含运行管道所需的所有资源和工作流步骤的声明。2022世界杯阿根廷预选赛赛程values.yml
,其中包含管道所需的值。yml文件。
有关yml文件中使用的所有资源、管道和步骤的完整分解,请参见2022世界杯阿根廷预选赛赛程pipelines.yml下面的部分。
Fork这个存储库到您的帐户或组织。这一点很重要,因为您需要对作为Pipeline Sources或GitRepo资源的存储库进行管理访问,以便将webhook添加到这些存储库并侦听更改事件。2022世界杯阿根廷预选赛赛程
登录到Artifactory
用您的Artifactory证书登录JFrog平台。添加集成
a.转至政府|管道|集成来添加两个积分:
- GitHub集成:此集成用于添加Pipeline源,以及中定义的GitRepo资源values.yml.
- Artifactory集成:这种集成用于与Artifactory进行身份验证,从Artifactory下载npm依赖,并将构建的包打包并上传至Artifactory。
b.写下GitHub和Artifactory集成的名称,因为这些是下一个步骤.确保名字是唯一的,容易记住。
更新的值。Yml和管道。Yml
管道配置可在
values.yml
文件。编辑此文件在本次回购的fork中,替换以下内容:标签 描述 例子 gitProvider
提供在上一步中添加的Github集成的名称。
gitProvider: my_github
路径
提供这个存储库的分支的路径。
路径:myuser /工程实例
编辑
pipelines.yml
文件和替换以下内容:标签 描述 例子 sourceArtifactory
提供您的Artifactory集成。
sourceArtifactory:艺术
repositoryName
提供Artifactory中npm存储库的名称。
repositoryName: npm-virtual
所有管道定义都是全局的JFrog管道在一个项目中。管道和资源的名称在内部必须是唯一的2022世界杯阿根廷预选赛赛程项目位于JFrog管道。
添加管道源
的管道来源表示存储管道定义文件的git存储库。管道源通过控件连接到存储库集成,这是我们在步骤3中添加的。
在左侧导航栏中,转到管理|管道|管道源.点击添加管道源然后选择从YAML.遵照指示添加管道源.这将自动将您的配置添加到平台,并根据您的YAML创建管道。执行管道
管道源成功同步后,导航到管道,我的管道在左侧导航栏可以看到新添加的管道。在这个例子中,
npm_example_pipeline_jfp
是我们管道的名称。单击管道的名称。这将呈现管道及其最新运行结果的实时交互式图表。
您可以通过向存储库提交更改来触发管道,也可以通过UI手动触发管道。管道中的步骤按顺序执行。如果节点池有多个可用的构建节点,则可以并行执行多个步骤。一旦管道完成,就会列出一个新的运行。
pipelines.yml
的pipelines.yml
文件由资源、管道和步骤组成,如下图所示2022世界杯阿根廷预选赛赛程:
2022世界杯阿根廷预选赛赛程
本例使用以下类型的2022世界杯阿根廷预选赛赛程:
GitRepo
一个GitRepo资源用于将JFrog管线连接到源代码控制存储库。添加它将创建一个webhook到repo中,以便将来的提交将自动创建一个带有webhook有效负载的新版本。
- name: npm_example_repo_jfp type: GitRepo configuration: # SCM integration where repository is located gitProvider: {{. values . myrepo。gitProvider}} #存储库路径,包括组织名/repo名路径:{{. values . myrepo。路径}} branches: # Specifies which branches will trigger dependent steps include: master
标签 |
描述 |
必需的/可选 |
---|---|---|
的名字 |
此名称用于引用步骤中的资源,并且必须在JFrog Pipelines环境中的所有存储库中惟一。 |
要求 |
|
的名称GitHub集成.其值为从values.yml文件。 | 要求 |
路径 |
存储库从集成根开始的路径。其值为从values.yml文件。 | 要求 |
分支机构 |
的 |
可选 |
BuildInfo
BuildInfo时自动创建NpmBuildStep用于生成包。然后,BuildInfo被发布到已配置的Artifactory repo (sourceArtifactory: demoArt
),以提供该资源NpmPublish的一步。
—name: npm_example_buildinfo_jfp type: BuildInfo configuration: sourceArtifactory: demoArt
标签 |
描述 |
必需的/可选 |
---|---|---|
的名字 |
此名称用于引用步骤中的资源,并且必须在JFrog Pipelines环境中的所有存储库中惟一。 |
要求 |
|
的名称Artifactory集成.其值为从values.yml文件。 |
要求 |
管道
npm_example_pipeline_jfp
管道的名称,其中包含运行管道的步骤。
步骤
的npm_example_pipeline_jfp
管道包含以下内容本机的步骤:
NpmBuild
的NpmBuild本机步骤构建一个NPM源代码。此步骤自动执行npm-install
在Git存储库中的源代码上。
- name: npm_build_step type: NpmBuild configuration: repositoryName: npm-virtual # required, npm repository name on artifactory sourceLocation: ./npm-example # required, package的位置。- name: demoArt # required inputResources: - name: npm_e2022世界杯阿根廷预选赛赛程xample_repo_jfp # required
标签 |
使用说明 |
必需的/可选 |
---|---|---|
的名字 |
npm_build_step 是的名字 这就确定了步骤。这是将该步骤分配为下一步npm_publish_step的输入时使用的名称。 |
要求 |
repositoryName |
npm-virtual 是Artifactory中npm存储库的名称。 |
要求 |
sourceLocation |
。/ npm-example 是目录,其中包含package.json 文件,相对于GitRepo路径 . |
要求 |
集成 |
指定一个Artifactory集成模块将在哪里发布。中指定了FileSpec资源input2022世界杯阿根廷预选赛赛程Resources 这是可选的。否则,它是必需的。 |
可能需要 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定一个GitRepo资源。的 这一步接受 |
要求 可选 |
NpmPublish
的NpmPublishstep将一个npm包发布到Artifactory的注册表中NpmBuild的一步。
- name: npm_publish_step type: NpmPublish configuration: # for payloadType npm: repositoryName: npm-virtual # required, npm repository name on artifactory autopubishbuildinfo: true # optional integration: - name: demoArt # required inputSteps: - name: npm_build_step # required outputRe2022世界杯阿根廷预选赛赛程sources: - name: npm_example_buildinfo_jfp # optional
标签 |
使用说明 |
必需的/可选 |
---|---|---|
的名字 |
npm_publish_step 是的名字 这就确定了步骤。 |
要求 |
repositoryName |
|
要求 |
autoPublishBuildInfo |
当设置为true时,发布构建信息到Artifactory。默认为false。 一旦发布,构建信息可以在Artifactory中查看,在build Browser下的Builds中。 |
可选 |
集成 |
必须指定Artifactory集成. | 要求 |
inputSteps |
|
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定BuildInfo资源如果
|
可能需要 |