fix: remove unnecessary CR repo creation step
All checks were successful
Build and Deploy LTY / build-and-deploy (push) Successful in 9m20s
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:
parent
8762da358a
commit
83a67029a8
@ -48,53 +48,6 @@ jobs:
|
||||
run: |
|
||||
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
|
||||
id: build_backend
|
||||
run: |
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user