Skip to content

huaweicloud/Maven-cloudartifact-workflow-samples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

使用华为云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官方中心仓

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages