fix: remove unnecessary CR repo creation step
All checks were successful
Build and Deploy LTY / build-and-deploy (push) Successful in 9m20s

Docker push auto-creates repos on Volcano Engine CR, no need for
explicit OpenAPI calls. Align with jimeng-clone approach.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
zyc 2026-04-04 16:12:08 +08:00
parent 8762da358a
commit 83a67029a8

View File

@ -48,53 +48,6 @@ jobs:
run: | run: |
echo "${{ env.CR_PASSWORD_ACTIVE }}" | docker login --username "${{ env.CR_USERNAME_ACTIVE }}" --password-stdin ${{ env.CR_SERVER_ACTIVE }} echo "${{ env.CR_PASSWORD_ACTIVE }}" | docker login --username "${{ env.CR_USERNAME_ACTIVE }}" --password-stdin ${{ env.CR_SERVER_ACTIVE }}
- name: Ensure CR Repositories Exist
run: |
REGISTRY_NAME=$(echo "${{ env.CR_SERVER_ACTIVE }}" | sed 's/.cr.volces.com//')
python3 << PYEOF
import hashlib, hmac, json, os, sys
from datetime import datetime, timezone
from urllib.request import Request, urlopen
from urllib.parse import urlencode
def create_repo(ak, sk, registry, ns, name, region='cn-shanghai'):
service, host = 'cr', 'open.volcengineapi.com'
t = datetime.now(timezone.utc)
ds, amz = t.strftime('%Y%m%d'), t.strftime('%Y%m%dT%H%M%SZ')
body = json.dumps({'Registry': registry, 'Namespace': ns, 'Name': name})
qs = urlencode(sorted({'Action': 'CreateRepository', 'Version': '2022-05-12'}.items()))
ph = hashlib.sha256(body.encode()).hexdigest()
sh = 'content-type;host;x-content-sha256;x-date'
cr = 'POST\n/\n%s\ncontent-type:application/json\nhost:%s\nx-content-sha256:%s\nx-date:%s\n\n%s\n%s' % (qs, host, ph, amz, sh, ph)
cs = '%s/%s/%s/request' % (ds, region, service)
sts = 'HMAC-SHA256\n%s\n%s\n%s' % (amz, cs, hashlib.sha256(cr.encode()).hexdigest())
k = sk.encode()
for p in [ds, region, service, 'request']:
k = hmac.new(k, p.encode(), hashlib.sha256).digest()
sig = hmac.new(k, sts.encode(), hashlib.sha256).hexdigest()
auth = 'HMAC-SHA256 Credential=%s/%s, SignedHeaders=%s, Signature=%s' % (ak, cs, sh, sig)
req = Request('https://%s?%s' % (host, qs), data=body.encode(), headers={
'Content-Type': 'application/json', 'Host': host,
'X-Date': amz, 'X-Content-Sha256': ph, 'Authorization': auth
}, method='POST')
try:
urlopen(req)
print('Created %s/%s' % (ns, name))
except Exception as e:
err = e.read().decode() if hasattr(e, 'read') else str(e)
if 'Exist' in err:
print('%s/%s already exists, skip' % (ns, name))
else:
print('Warning: %s/%s: %s' % (ns, name, err))
ak = '${{ secrets.VOLC_ACCESS_KEY }}'
sk = '${{ secrets.VOLC_SECRET_KEY }}'
registry = '${REGISTRY_NAME}'
ns = '${{ env.CR_ORG }}'
for repo in ['lty-backend', 'lty-admin']:
create_repo(ak, sk, registry, ns, repo)
PYEOF
- name: Build and Push Backend - name: Build and Push Backend
id: build_backend id: build_backend
run: | run: |