目录

使用华为云CodeArts Artifact Maven 私仓workflows样例

本READEME指导是基于Maven CloudArtifact Action使用华为云CodeArts Artifact Maven 私仓workflows样例

制品仓库(CodeArts Artifact),用于管理源代码编译后的构建产物,支持Maven、Npm、PyPI、Docker、NuGet等常见制品包类型。
使用华为云Artifact Maven 私仓有如下场景:
1.mvn deploy: 推送maven组件到 CodeArts Artifact Maven 私仓
2.mvn package: CodeArts Artifact Maven 私仓的maven组件

前置工作

(1)新建私有依赖库
(2)管理用户权限 上传maven组件需要权限: 仓库角色为仓库管理员、开发者
下载maven组件需要权限: 仓库角色为仓库管理员、开发者、浏览者

不是仓库成员或者没有对应权限需要租户帐号、仓库管理员修改为对应的仓库角色。

(3) CodeArts Artifact Maven 私仓账号信息获取
私有依赖库首页->点击需要的Maven仓库->右上角操作指导->点击下载配置文件->Maven配置在下载的settings.xml文件当中
图一

参数说明

Maven-cloudartifact-action 参数都属于Maven settings.xml文件的元素,详细了解可以到官网Maven Settings 。本action四个参数servers, mirrors,repositories,pluginRepositories都是json array的格式。下面给出四个参数的具体的样例。用户可以根据自己实际的仓库信息替换id,url等里面的参数值。

servers

steps:
- uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
  with:
    servers: '[{"id": "serverId", "username": "${{ secrets.MAVEN_USERNAME }}", "password": "${{ secrets.MAVEN_PASSWORD }}"}]'

mirrors

steps:
- uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
  with:
     mirrors: '[{"id": "mirrorId", "mirrorOf": "mirrorOf", "url": "mirrorUrl"}]'

repositories

steps:
- uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
  with:
    repositories: '[{ "id": "some-repository", "url": "http://<private_repo_url>", "releases": { "enabled": "true" }, "snapshots": { "enabled": "false" } }]'

pluginRepositories

steps:
- uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
  with:
    plugin_repositories: '[{ "id": "some-plugin-repository", "url": "http://<private_repo_url>", "releases": { "enabled": "true" }, "snapshots": { "enabled": "false" }}]'

CodeArts Artifact Maven 私仓workflows样例

1.mvn deploy: 推送maven组件到 CodeArts Artifact Maven 私仓

步骤说明:
(1)代码检出
(2)华为云CodeArts Artifact maven 私仓配置
(3)maven deploy 推送maven二进制包到华为云CodeArts Artifact maven 私仓

name: Maven CodeArts Artifact Action Deploy Demo
on:
  push:
    branches:
       master
jobs:
  Publish-to-CodeArts-Artifact:
    runs-on: ubuntu-latest
    steps:
        # 代码检出
      - uses: actions/checkout@v2

        # GitHub Action环境默认java版本为11,可以根据自己项目需求修改java版本
      - name: Set up JDK 11 for maven build
        uses: actions/setup-java@v1
        with:
          java-version: 11

        # 华为云CodeArts Artifact maven 私仓配置 
      - name: Setup Huawei Cloud CodeArts Maven Artifact
        uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
        with: 
          servers: '[{"id": "release_repo_id", "username": "${{ secrets.MAVEN_USERNAME }}", "password": "${{ secrets.MAVEN_PASSWORD }}"}]'
    
        # 推送maven二进制包到华为云CodeArts Artifact maven 私仓
      - name: deploy artifact 
        run: |
          mvn deploy -e -X

详情可参考 ./github/workflows/maven-cloudartifact-action-deploy-demo.yml

注意
1.mvn deploy, pom文件里面必须包含有效的<distributionManagement/>元素,可以参考当前仓库pom.xml文件
Reference: Maven Deploy
2.action的参数servers中,id需要与pom文件中<distributionManagement/>元素的仓库id一致。可以参考当前仓库pom.xml文件和maven-cloudartifact-action-deploy-demo.yml
img

2.mvn package: 拉取CodeArts Artifact Maven 私仓的maven组件

步骤说明:
(1)代码检出
(2)华为云CodeArts Artifact maven 私仓配置
(3)maven package 拉取华为云CodeArts Artifact maven 私仓二进制包构建工程

name: Maven CodeArts Artifact Action Package Demo
on:
  push:
    branches:
       master
jobs:
  Install-CodeArts-Artifact:
    runs-on: ubuntu-latest
    steps:
        # 代码检出
      - uses: actions/checkout@v2

        # GitHub Action环境默认java版本为11,可以根据自己项目需求修改java版本
      - name: Set up JDK 11 for maven build
        uses: actions/setup-java@v1
        with:
          java-version: 11

        # 华为云CodeArts Artifact maven 私仓配置
      - name: Setup Huawei Cloud CodeArts Maven Artifact
        uses: huaweicloud/Maven-cloudartifact-action@v1.0.0
        with: 
          servers: '[{"id": "release_repo_id", "username": "${{ secrets.MAVEN_USERNAME }}", "password": "${{ secrets.MAVEN_PASSWORD }}"}]'
          repositories: '[{ "id": "central", "url": "https://repo1.maven.org/maven2", "releases": { "enabled": "true" }, "snapshots": { "enabled": "false" } },{ "id": "release_repo_id", "url": "https://<release_private_repo_url>/", "releases": { "enabled": "true" }, "snapshots": { "enabled": "false" } }]'

        # 拉取华为云CodeArts Artifact maven 私仓二进制包构建工程
      - name: package artifact
        run: |
          mvn package -e -X

详情可参考 ./github/workflows/maven-cloudartifact-action-package-demo.yml

注意点
1.首先确保需要下载的组件在CodeArts Artifact maven 私仓
2.将需要下载的组件添加进pom文件,如下面的依赖
<dependency>
<groupId>com.huawei.devcloud</groupId>
<artifactId>demoapp</artifactId>
<version>1.0.0</version>
</dependency>
3.下载组件的maven坐标(groupId:artifactId:version)与当前工程的坐标不能一样。
4.settings.xml中repositories中需要账号信息的仓库id需与settings.xml中server节点下的仓库id一致。也就是action输入参数servers与repositories的id一致。可以参考当前仓库的文件./github/workflows/maven-cloudartifact-action-package-demo.yml img

workflow sample中使用公网地址说明

  1. Maven官方中心仓
关于
595.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号