本READEME指导是基于action: Huawei Cloud Software Repository for Container (SWR) Login登录使用华为容器镜像服务的workflows样例
建议用户提前了解action输入参数和容器镜像服务的一些基础概念,以便迅速上手使用.swr-login-workflow-samples。
- 管理IAM用户访问密钥(AK/SK)
- 华为云区域(region)
- 容器镜像服务SWR创建组织和授权管理
提示:下面参数标注 🔐 的参数属于敏感信息,建议在GitHub项目的setting--Secret--Actions下添加私密参数。比如添加参数ACCESSKEY,action参数使用为${{ secrets.ACCESSKEY }}。
Name | Sensitive | Require | Description |
---|---|---|---|
access-key-id | 🔐 | true | 华为云访问密钥ID即AK,可以在我的凭证获取。 |
access-key-secret | 🔐 | true | 华为云访问密钥即SK,可以在我的凭证获取。 |
region | true | 华为云区域,可以在我的凭证获取。 |
登录使用SWR提供两种参考实例:
- 推送镜像到华为云SWR
- 拉取华为云SWR的镜像
name: Push Image to SWR Demo
on:
push:
branches:
master
env:
REGION_ID: '<region id>' # example: cn-north-4
SWR_ORGANIZATION: '<swr_organization>' # SWR 组织名
IMAGE_NAME: '<image_name>' # 镜像名称
jobs:
swr-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Log in to Huawei Cloud SWR
uses: huaweicloud/swr-login@v2.1.0
with:
access-key-id: ${{ secrets.ACCESSKEY }}
access-key-secret: ${{ secrets.SECRETACCESSKEY }}
region: ${{ env.REGION_ID }}
- name: Build, Tag, and Push Image to Huawei Cloud SWR
id: push-image
env:
SWR_REGISTRY: swr.${{ env.REGION_ID }}.myhuaweicloud.com
SWR_ORGANIZATION: ${{ env.SWR_ORGANIZATION }}
IMAGE_TAG: ${{ github.sha }} # 镜像版本,这里是使用代码commitid sha值, 用户可以修改成自己需要的。
IMAGE_NAME: ${{ env.IMAGE_NAME }}
run: |
docker build -t $SWR_REGISTRY/$SWR_ORGANIZATION/$IMAGE_NAME:$IMAGE_TAG .
docker push $SWR_REGISTRY/$SWR_ORGANIZATION/$IMAGE_NAME:$IMAGE_TAG
echo "::set-output name=image::$SWR_REGISTRY/$SWR_ORGANIZATION/$IMAGE_NAME:$IMAGE_TAG"
详情可参考 .github/workflows/push-image-to-swr-demo.yml
- 拉取SWR镜像时候,确保自己的SWR存在镜像
- SWR镜像地址格式:swr..myhuaweicloud.com/<镜像组织名称>/<镜像名称>:<镜像版本>
- SWR镜像地址例子: swr.cn-north-4.myhuaweicloud.com/test/image_name:v1.0.0
name: Pull Image from SWR Demo
on:
push:
branches:
master
env:
REGION_ID: '<region id>' # example: cn-north-4
IMAGE_URL: '<image url>' # 镜像地址
jobs:
swr-pull:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Log in to Huawei Cloud SWR
uses: huaweicloud/swr-login@v2.1.0
with:
access-key-id: ${{ secrets.ACCESSKEY }}
access-key-secret: ${{ secrets.SECRETACCESSKEY }}
region: ${{ env.REGION_ID }}
- name: Pull Image from Huawei Cloud SWR
id: pull-image
run: |
docker pull ${{ env.IMAGE_URL }}