diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 49942c0e6897f045c6c283fdfc4fb9dd6eb19014..f04c62dba1b3d9e3b0ee51029bd4ea440de22256 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: huaweicloud/swr-login@v1 + - uses: huaweicloud/swr-login@v2.1.0 name: Login to HuaweiCloud SWR with: region: cn-north-4 @@ -28,7 +28,7 @@ jobs: - uses: ./ name: "build docker image for multiplatform" with: - image_tag: swr.cn-north-4.myhuaweicloud.com/hcloudcli/jdkdemo:jdk19-v1.0.0.4 + image_tag: swr.cn-north-4.xxx/hcloudcli/jdkdemo:jdk19-v1.0.0.4 platforms: linux/amd64,linux/arm64/v8,windows/amd64 use_latest_buildx: false push: true diff --git a/CODEOWNERS b/CODEOWNERS deleted file mode 100644 index 992d27f094ebee464fcf37f435775899f14f61d8..0000000000000000000000000000000000000000 --- a/CODEOWNERS +++ /dev/null @@ -1 +0,0 @@ -* @actions/actions-runtime diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 94884545062a0d164bf2aa1bebe7f363e492a270..0000000000000000000000000000000000000000 --- a/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM openjdk:19-jdk -ADD LICENSE . diff --git a/README.md b/README.md index 9ea47b9a0694e49e94f4618dedf960389a6cf31a..c45be4acf0f620e350d4863b6d7ff606d2f89e23 100644 --- a/README.md +++ b/README.md @@ -38,14 +38,14 @@ 为docker镜像添加 linux/amd64,linux/arm64/v8,windows/amd64 平台支持,注意github暂不支持基于macos,windows镜像跑workflow,请不要runs-on: windows或者macos相关的镜像 ```yaml - name: Login to Huawei Cloud SWR - uses: huaweicloud/swr-login@v2.0.0 + uses: huaweicloud/swr-login@v2.1.0 with: region: cn-north-4 access-key-id: ${{ secrets.ACCESSKEY }} access-key-secret: ${{ secrets.SECRETACCESSKEY }} - name: Build Docker image for multiplatform - uses: huaweicloud/swr-multiplatform-build-action@v1.1.0 + uses: huaweicloud/swr-multiplatform-build-action@v1.2.0 with: image_tag: swr.cn-north-4.myhuaweicloud.com/hcloudcli/jdkdemo:jdk19-v1.0.0.4 platforms: linux/amd64,linux/arm64/v8,windows/amd64 @@ -90,4 +90,19 @@ manifests: ### 2、linux arm-64平台: ![avatar](./images/20220509-195911.png) ### 3、windows x86-64平台 - ![avatar](./images/20220510-085854.png) \ No newline at end of file + ![avatar](./images/20220510-085854.png) + +## Action中使用公网地址说明 +1. buildx下载地址 + 1)[buildx-v0.8.2.darwin-amd64](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.darwin-amd64) + 2)[buildx-v0.8.2.darwin-arm64](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.darwin-arm64) + 3)[buildx-v0.8.2.linux-amd64](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-amd64) + 4)[buildx-v0.8.2.linux-arm-v6](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-arm-v6) + 5)[buildx-v0.8.2.linux-arm-v7](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-arm-v7) + 6)[buildx-v0.8.2.linux-arm64](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-arm64) + 7)[buildx-v0.8.2.linux-ppc64le](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-ppc64le) + 8)[buildx-v0.8.2.linux-riscv64](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-riscv64) + 9)[buildx-v0.8.2.linux-s390x](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-s390x) + 10)[buildx-v0.8.2.windows-amd64.exe](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.windows-amd64.exe) + 11)[buildx-v0.8.2.windows-arm64.exe](https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.windows-arm64.exe) +2. [buildx的release页面](https://api.github.com/repos/docker/buildx/releases/latest) \ No newline at end of file diff --git a/action.yml b/action.yml index b3070e20c335336d8b2720359745b38e15507268..dc302f8184cd1f555be13426cd29b5132013f2e5 100644 --- a/action.yml +++ b/action.yml @@ -3,7 +3,6 @@ description: 'Build docker image cross platform like linux,windows,macos x86 and branding: color: 'red' icon: 'cloud' -author: 'wenchui' inputs: image_tag: required: true diff --git a/dist/index.js b/dist/index.js index 4f45f408ba2ce8c3c2d4b5450c8fb912144ff0a5..dda19c048d56b83c68cb414e740a11553f704190 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index 81c8f8385583877154eb64d58129a5e2c2501a9c..0000000000000000000000000000000000000000 Binary files a/dist/index.js.map and /dev/null differ diff --git a/dist/sourcemap-register.js b/dist/sourcemap-register.js deleted file mode 100644 index 466141d4069ca04101c119f6881977d0ddc86a81..0000000000000000000000000000000000000000 Binary files a/dist/sourcemap-register.js and /dev/null differ diff --git a/package.json b/package.json index e01f351ae2f5883b64cc76ad6620cc60d684dbf7..c7b7681103c65ab9e514aa2f6cea86a25ad153e1 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,23 @@ { "name": "swr-multiplatform-build-action", - "version": "0.0.1", + "version": "v1.2.0", "private": true, "description": "build docker image cross platform like linux,windows,macos x86 and arm", - "main": "lib/main.js", + "main": "src/main.ts", "scripts": { "build": "tsc", "format": "prettier --write \"src/*.{ts,tsx}\"", "format-check": "prettier --check \"src/*.{ts,tsx}\"", - "package": "ncc build --source-map --license licenses.txt", + "package": "ncc build -m --license licenses.txt", "test": "jest --collectCoverage", "lint": "eslint src --ext .ts", "all": "npm run build && npm run format && npm run package" }, - "repository": { - "type": "git", - "url": "git+https://github.com/huaweicloud/swr-multiplatform-build-action.git" - }, "keywords": [ "swr", "multi platform", "docker" ], - "author": "wenchui", - "license": "MIT", "dependencies": { "@actions/core": "^1.6.0", "@actions/http-client": "^1.0.6", diff --git a/src/buildxHelper.ts b/src/buildxHelper.ts index 9391ed930629c97554570382e0b52e5ad4bc3cf0..51ac072466e1e1af6435028ec066c5471706b749 100644 --- a/src/buildxHelper.ts +++ b/src/buildxHelper.ts @@ -255,7 +255,6 @@ export async function getDockerBuildxVersion(): Promise { /** * 解析当前 buildx version串中的buildx版本号 - * 如 github.com/docker/buildx v0.8.2 6224def4dd2c3d347eee19db595348c50d7cb491 提取出 0.8.2 * @param buildxVersion * @returns */ diff --git a/src/context.ts b/src/context.ts index 443b2ad600d40d084370d18a24aef83630c634e8..40eadc8b073365ee94659a197e87b0dcd5acc27a 100644 --- a/src/context.ts +++ b/src/context.ts @@ -1,4 +1,6 @@ import * as core from '@actions/core' +import * as utils from './utils' + export interface Inputs { imagetag: string @@ -10,18 +12,6 @@ export interface Inputs { /** * 目前支持SWR功能的region列表 - * 区域名称 区域 终端节点(Endpoint) 协议类型 - * 非洲-约翰内斯堡 af-south-1 swr-api.af-south-1.myhuaweicloud.com HTTPS - * 华北-北京四 cn-north-4 swr-api.cn-north-4.myhuaweicloud.com HTTPS - * 华北-北京一 cn-north-1 swr-api.cn-north-1.myhuaweicloud.com HTTPS - * 华东-上海二 cn-east-2 swr-api.cn-east-2.myhuaweicloud.com HTTPS - * 华东-上海一 cn-east-3 swr-api.cn-east-3.myhuaweicloud.com HTTPS - * 华南-广州 cn-south-1 swr-api.cn-south-1.myhuaweicloud.com HTTPS - * 拉美-圣地亚哥 la-south-2 swr-api.la-south-2.myhuaweicloud.com HTTPS - * 西南-贵阳一 cn-southwest-2 swr-api.cn-southwest-2.myhuaweicloud.com HTTPS - * 亚太-曼谷 ap-southeast-2 swr-api.ap-southeast-2.myhuaweicloud.com HTTPS - * 亚太-新加坡 ap-southeast-3 swr-api.ap-southeast-3.myhuaweicloud.com HTTPS - * 中国-香港 ap-southeast-1 swr-api.ap-southeast-1.myhuaweicloud.com HTTPS */ export const regionArray = [ 'af-south-1', @@ -111,12 +101,12 @@ export const DOCKER_BUILDX_MOD = '755' export function getInputs(): Inputs { return { - imagetag: core.getInput('image_tag', {required: true}), - platforms: core.getInput('platforms', {required: false}), + imagetag: utils.removeBlankString(core.getInput('image_tag', {required: true})), + platforms: utils.removeBlankString(core.getInput('platforms', {required: false})), uselatestbuildx: core.getBooleanInput('use_latest_buildx', { required: false }), push: core.getBooleanInput('push', {required: false}), - file: core.getInput('file', {required: false}) + file: utils.removeBlankString(core.getInput('file', {required: false})) } } diff --git a/src/utils.ts b/src/utils.ts index bde3d0099dfb55d37a7bbf41ea7ac81ae6db8ee9..87efe63c2b748ebee9a0b5d353aec965b702ba95 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -4,6 +4,8 @@ import * as os from 'os' import * as cp from 'child_process' import * as fs from 'fs-extra' +const BLANK_STRING_REG = new RegExp(/\s+/g); + /** * 检查输入的各参数是否正常 * @param inputs @@ -19,7 +21,7 @@ export async function checkInputs(inputs: context.Inputs) { if (inputs.imagetag.startsWith('swr')) { const region = getRegionFromEndpoint(inputs.imagetag, 1, '.') if (!context.regionArray.includes(region)) { - core.info('SWR not support in this region: ' + region) + core.info(`SWR not support in this region: ${region}`) checkResult = false } } @@ -32,7 +34,7 @@ export async function checkInputs(inputs: context.Inputs) { inputs.file = 'Dockerfile' } if (!checkDockerfileExist(inputs.file)) { - core.info('Dockerfile not exit or file content is empty') + core.info('Dockerfile does not exist or file content is empty') checkResult = false } return checkResult @@ -51,7 +53,7 @@ export function checkPlatformSupport(platforms: string): boolean { const platformsArray = platforms.split(',') for (let i = 0; i < platformsArray.length; i++) { if (!context.dockerSupportPlatforms.includes(platformsArray[i])) { - core.info('SWR not support platform ' + platformsArray[i]) + core.info(`SWR not support platform ${platformsArray[i]}`) isPlatformSupport = false } } @@ -64,17 +66,16 @@ export function checkPlatformSupport(platforms: string): boolean { * @returns */ export function checkDockerfileExist(file: string): boolean { - core.info('check local file ' + file + ' exist') + core.info(`Check whether the file ${file} exists.`) try { const stat = fs.statSync(file) - console.log(stat) if (stat.isFile() && stat.size > 0) { return true } else { return false } } catch (error) { - console.log(error) + core.setFailed('Get information about the given file failed.') return false } } @@ -110,7 +111,7 @@ export function getRegionFromEndpoint( if (urlArray.length >= index + 1) { region = urlArray[index] } - core.info('get currentRegion : ' + region) + core.info(`get currentRegion : ${region}`) return region } @@ -197,3 +198,11 @@ export async function execCommand(command: string): Promise { core.info(execCommandResult) return execCommandResult } + +/** + * 去除空白字符,包括空格、制表符、换页符和换行符。 + * @param str + */ + export function removeBlankString(str: string): string { + return str.replace(BLANK_STRING_REG, '').trim(); +} \ No newline at end of file diff --git a/test/buildHelper.test.ts b/test/buildHelper.test.ts index 1537295bd7b4c56a761a1c7d39aeec0abf4e0c29..f980769aaa2a422b228a4b06f56925f16452c6ee 100644 --- a/test/buildHelper.test.ts +++ b/test/buildHelper.test.ts @@ -3,7 +3,7 @@ import * as build from '../src/buildHelper' import * as context from '../src/context' const inputs1:context.Inputs ={ - imagetag: "swr.cn-north-4.myhuaweicloud.com/ptworkflow/tomcat:maven-sample", + imagetag: "swr.cn-north-4.xxx/ptworkflow/tomcat:maven-sample", platforms: "", uselatestbuildx: false, push: false, @@ -11,7 +11,7 @@ const inputs1:context.Inputs ={ } const inputs2:context.Inputs ={ - imagetag: "swr.cn-north-4.myhuaweicloud.com/ptworkflow/tomcat:maven-sample", + imagetag: "swr.cn-north-4.xxx/ptworkflow/tomcat:maven-sample", platforms: "", uselatestbuildx: false, push: false, @@ -21,7 +21,7 @@ const inputs2:context.Inputs ={ const inputs3:context.Inputs ={ - imagetag: "swr.cn-north-4.myhuaweicloud.com/ptworkflow/tomcat:maven-sample", + imagetag: "swr.cn-north-4.xxx/ptworkflow/tomcat:maven-sample", platforms: "linux/amd64,linux/arm64/v8,windows/amd64", uselatestbuildx: false, push: false, @@ -29,7 +29,7 @@ const inputs3:context.Inputs ={ } const inputs4:context.Inputs ={ - imagetag: "swr.cn-north-4.myhuaweicloud.com/ptworkflow/tomcat:maven-sample", + imagetag: "swr.cn-north-4.xxx/ptworkflow/tomcat:maven-sample", platforms: "linux/amd64,linux/arm64/v8,windows/amd64", uselatestbuildx: false, push: true, @@ -37,19 +37,11 @@ const inputs4:context.Inputs ={ } test("test version compare mimetype", async() => { - // console.log(build.genDockerBuildCommand(inputs1)); + expect(build.genDockerBuildCommand(inputs1)).toEqual("docker buildx build -t swr.cn-north-4.xxx/ptworkflow/tomcat:maven-sample ."); - // console.log(build.genDockerBuildCommand(inputs2)); + expect(build.genDockerBuildCommand(inputs2)).toEqual("docker buildx build -f ./Dockerfile -t swr.cn-north-4.xxx/ptworkflow/tomcat:maven-sample ."); - // console.log(build.genDockerBuildCommand(inputs3)); + expect(build.genDockerBuildCommand(inputs3)).toEqual("docker buildx build --platform linux/amd64,linux/arm64/v8,windows/amd64 -f ./dockerfile/Dockerfile -t swr.cn-north-4.xxx/ptworkflow/tomcat:maven-sample ."); - // console.log(build.genDockerBuildCommand(inputs4)); - - expect(build.genDockerBuildCommand(inputs1)).toEqual("docker buildx build -t swr.cn-north-4.myhuaweicloud.com/ptworkflow/tomcat:maven-sample ."); - - expect(build.genDockerBuildCommand(inputs2)).toEqual("docker buildx build -f ./Dockerfile -t swr.cn-north-4.myhuaweicloud.com/ptworkflow/tomcat:maven-sample ."); - - expect(build.genDockerBuildCommand(inputs3)).toEqual("docker buildx build --platform linux/amd64,linux/arm64/v8,windows/amd64 -f ./dockerfile/Dockerfile -t swr.cn-north-4.myhuaweicloud.com/ptworkflow/tomcat:maven-sample ."); - - expect(build.genDockerBuildCommand(inputs4)).toEqual("docker buildx build --platform linux/amd64,linux/arm64/v8,windows/amd64 -f ./dockerfile/Dockerfile -t swr.cn-north-4.myhuaweicloud.com/ptworkflow/tomcat:maven-sample --push ."); + expect(build.genDockerBuildCommand(inputs4)).toEqual("docker buildx build --platform linux/amd64,linux/arm64/v8,windows/amd64 -f ./dockerfile/Dockerfile -t swr.cn-north-4.xxx/ptworkflow/tomcat:maven-sample --push ."); }) \ No newline at end of file diff --git a/test/buildxHelper.test.ts b/test/buildxHelper.test.ts index 68a2f6fd48cee03ce792ab466c2d8472dc3c9cd7..08ebd37f4f23430905951b6a03dfe83ed04e5834 100644 --- a/test/buildxHelper.test.ts +++ b/test/buildxHelper.test.ts @@ -2,81 +2,56 @@ import * as utils from '../src/utils' import {expect, test} from '@jest/globals' import * as buildx from '../src/buildxHelper' - test('check buildx download', async() => { - const testDownloadUrl = "https://github.com/huaweicloud/scp-remote-action/archive/refs/tags/v1.0.0.zip"; - const downloadPath = await buildx.getBuildXDownlodPath(testDownloadUrl); - console.log("downloadPath " + downloadPath); -}) - test('check os,platform,arch', async() => { const osArch = utils.getOSArch(); const osPlatform = utils.getOSPlatform(); - const osType = utils.getOSType(); - console.log("osArch " + osArch) - console.log("osPlatform " + osPlatform) - console.log("osType " + osType) await getDownloadURL(osArch,osPlatform); }) - - - // test macos platform download url - + test("check MacOS x86-64 platform buildx download", async() => { const osArch = "x64"; const osPlatform = "darwin"; - // const osType = "Darwin"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.darwin-amd64"); }) test("check MacOS arm-64 platform buildx download", async() => { const osArch = "arm64"; const osPlatform = "darwin"; - // const osType = "Darwin"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.darwin-arm64"); }) - - // test windows platform download url - + test("check windows x86-64 platform buildx download", async() => { const osArch = "x64"; const osPlatform = "win32"; - // const osType = "Windows_NT"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.windows-amd64.exe"); }) test("check windows arm-64 platform buildx download", async() => { const osArch = "arm64"; const osPlatform = "win32"; - // const osType = "Windows_NT"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.windows-arm64.exe"); }) - // test unix platform download url test("check Linux x86-64 platform buildx download", async() => { const osArch = "x64"; const osPlatform = "linux"; - // const osType = "Linux"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-amd64"); }) test("check Linux arm-64 platform buildx download", async() => { const osArch = "arm64"; const osPlatform = "linux"; - // const osType = "Linux"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-arm64"); }) - // test other linux platform - test("check Linux arm-64 platform buildx download", async() => { const osArch = "s390x"; const osPlatform = "linux"; - // const osType = "Linux"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-s390x"); }) @@ -84,7 +59,6 @@ test('check os,platform,arch', async() => { test("check Linux arm-64 platform buildx download", async() => { const osArch = "ppc64"; const osPlatform = "linux"; - // const osType = "Linux"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-ppc64le"); }) @@ -92,7 +66,6 @@ test('check os,platform,arch', async() => { test("check Linux arm-64 platform buildx download", async() => { const osArch = "riscv64"; const osPlatform = "linux"; - // const osType = "Linux"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-riscv64"); }) @@ -100,7 +73,6 @@ test('check os,platform,arch', async() => { test("check Linux arm-64 platform buildx download", async() => { const osArch = "arm-v6"; const osPlatform = "linux"; - // const osType = "Linux"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-arm-v6"); }) @@ -108,24 +80,17 @@ test('check os,platform,arch', async() => { test("check Linux arm-64 platform buildx download", async() => { const osArch = "arm-v7"; const osPlatform = "linux"; - // const osType = "Linux"; expect(await getDownloadURL(osArch,osPlatform)).toEqual("https://github.com/docker/buildx/releases/download/v0.8.2/buildx-v0.8.2.linux-arm-v7"); }) async function getDownloadURL(osArch:string,osPlatform:string):Promise{ const buildxOSArch = utils.getOSArch4Buildx(osPlatform,osArch); - console.log("buildxOSArch " + buildxOSArch) const buildxOSPlatform = utils.getOSPlatform4Buildx(osPlatform); - console.log("buildxOSPlatform " + buildxOSPlatform) - const buildxTag = "v" + await buildx.getDockerBuildxVersion(); - console.log("buildxVersion " + buildxTag) const latestBuildxVersion = "v" + await buildx.getLatestBuildxTag(); - console.log("latestBuildxVersion " + latestBuildxVersion) const buildxDownloadUrl = buildx.getDockerBuildxDownloadUrl(latestBuildxVersion,buildxOSPlatform,buildxOSArch); - console.log("buildxDownloadUrl " + buildxDownloadUrl) return buildxDownloadUrl; } diff --git a/test/dockerHelper.test.ts b/test/dockerHelper.test.ts index c04db2a90dab27021fdc566f07ea508de9c6c93c..13fa6af1ffe489a40964e5fc9a6a018913e0b697 100644 --- a/test/dockerHelper.test.ts +++ b/test/dockerHelper.test.ts @@ -3,12 +3,6 @@ import * as dockerHelper from '../src/dockerHelper' test('check docker install download', async() => { expect(await dockerHelper.parseDockerVersion("Docker version 20.10.14, build a224086")).toEqual("20.10.14"); - - // expect(await dockerHelper.getVersion()).toEqual("20.10.14"); - - // expect(await dockerHelper.checkDockerInstall()).toEqual(true); - - // expect(await dockerHelper.checkDockerSuitable()).toEqual(true); }) test("test get Docker Version", async() => { diff --git a/test/utils.test.ts b/test/utils.test.ts index 449e8b288c0dbb32be71af5f7ccf5a3615e4af67..50dbdc6920200a342ed95b3c9b0a1a3da4ae8b2b 100644 --- a/test/utils.test.ts +++ b/test/utils.test.ts @@ -3,13 +3,13 @@ import {expect, test} from '@jest/globals' import * as context from '../src/context' test("test get region from swr image url", async() => { - const swradd1 = "swr.cn-north-4.myhuaweicloud.com/hcloudcli/springbootdemo:9b3d1776f5358a7e0b4562e476fbec629b9baa14"; + const swradd1 = "swr.cn-north-4.xxx/hcloudcli/springbootdemo:9b3d1776f5358a7e0b4562e476fbec629b9baa14"; expect(utils.getRegionFromEndpoint(swradd1,1,".")).toEqual("cn-north-4"); - const swradd2 = "swr.cn-north-4.myhuaweicloud.com/hcloudcli/springbootdemo:v1.1"; + const swradd2 = "swr.cn-north-4.xxx/hcloudcli/springbootdemo:v1.1"; expect(utils.getRegionFromEndpoint(swradd2,1,".")).toEqual("cn-north-4"); - const swradd3 = "swr.cn-north-2.myhuaweicloud.com/hcloudcli/jdk19:v1.0.0.1"; + const swradd3 = "swr.cn-north-2.xxx/hcloudcli/jdk19:v1.0.0.1"; expect(utils.getRegionFromEndpoint(swradd3,1,".")).toEqual("cn-north-2"); })