fix(ci): fix known_hosts resolution in git_write script
packages/kits - next/required / Setup - Stage (push) Successful in 41s
packages/ssg - next/required / Setup - Stage (push) Successful in 41s
packages/stl - next/required / Setup - Stage (push) Successful in 41s
packages/ui - next/required / Setup - Stage (push) Successful in 40s
services/docs - next/required / Setup - Hugo (push) Successful in 3s
services/static - next/required / Setup - Stage (push) Successful in 41s
services/www - next/required / Setup - Stage (push) Successful in 41s
packages/kits - next/required / Build - Configs & UI (push) Successful in 31s
packages/ssg - next/required / Build - Configs (push) Successful in 19s
packages/stl - next/required / Build - Configs (push) Successful in 20s
services/www - next/required / Build - Configs (push) Successful in 26s
packages/kits - next/required / Build - Storybook (push) Successful in 32s
packages/ui - next/required / Build - Configs (push) Successful in 25s
services/docs - next/required / Build - Hugo Site (push) Successful in 5s
services/static - next/required / Build - Configs (push) Successful in 23s
packages/kits - next/required / Lint - Kits (push) Successful in 53s
packages/kits - next/required / Typecheck - Kits (push) Successful in 22s
packages/kits - next/required / Test - Unit (push) Successful in 25s
packages/kits - next/required / Build - Kits (push) Successful in 24s
packages/ssg - next/required / Lint - SSG (push) Successful in 22s
packages/ssg - next/required / Typecheck - SSG (push) Successful in 18s
packages/ssg - next/required / Build - SSG (push) Successful in 20s
packages/stl - next/required / Test - STL (push) Successful in 20s
packages/stl - next/required / Build - STL (push) Successful in 20s
packages/stl - next/required / Lint - STL (push) Successful in 21s
packages/stl - next/required / Typecheck - STL (push) Successful in 19s
packages/ui - next/required / Lint - UI (push) Successful in 30s
packages/ui - next/required / Typecheck - UI (push) Successful in 21s
packages/ui - next/required / Test - Unit (push) Successful in 27s
packages/ui - next/required / Build - Storybook (push) Successful in 30s
packages/ui - next/required / Build - UI (push) Successful in 23s
services/docs - next/required / Release - Docker Image (push) Successful in 32s
services/static - next/required / Lint - Static (push) Successful in 23s
services/static - next/required / Typecheck - Static (push) Successful in 21s
services/static - next/required / Build - Static Site (push) Successful in 23s
services/www - next/required / Lint - WWW (push) Successful in 27s
services/www - next/required / Typecheck - WWW (push) Successful in 22s
services/www - next/required / Build - Storybook (push) Successful in 28s
services/www - next/required / Test - Unit (push) Successful in 21s
services/www - next/required / Build - WWW Service (push) Successful in 40s
packages/kits - next/required / Test - Storybook (push) Successful in 1m37s
packages/ui - next/required / Test - Storybook (push) Successful in 1m56s
services/www - next/required / Test - Storybook (push) Canceled after 54s
services/docs - next/required / Deploy - Kubernetes (GitOps) (push) Failing after 2m16s
services/docs - next/required / Verify - Production Rollout (push) Skipped
services/static - next/required / Deploy - S3 (push) Failing after 4s
services/www - next/required / Build - Docker Image (push) Canceled after 0s
packages/kits - next/required / Setup - Stage (push) Successful in 41s
packages/ssg - next/required / Setup - Stage (push) Successful in 41s
packages/stl - next/required / Setup - Stage (push) Successful in 41s
packages/ui - next/required / Setup - Stage (push) Successful in 40s
services/docs - next/required / Setup - Hugo (push) Successful in 3s
services/static - next/required / Setup - Stage (push) Successful in 41s
services/www - next/required / Setup - Stage (push) Successful in 41s
packages/kits - next/required / Build - Configs & UI (push) Successful in 31s
packages/ssg - next/required / Build - Configs (push) Successful in 19s
packages/stl - next/required / Build - Configs (push) Successful in 20s
services/www - next/required / Build - Configs (push) Successful in 26s
packages/kits - next/required / Build - Storybook (push) Successful in 32s
packages/ui - next/required / Build - Configs (push) Successful in 25s
services/docs - next/required / Build - Hugo Site (push) Successful in 5s
services/static - next/required / Build - Configs (push) Successful in 23s
packages/kits - next/required / Lint - Kits (push) Successful in 53s
packages/kits - next/required / Typecheck - Kits (push) Successful in 22s
packages/kits - next/required / Test - Unit (push) Successful in 25s
packages/kits - next/required / Build - Kits (push) Successful in 24s
packages/ssg - next/required / Lint - SSG (push) Successful in 22s
packages/ssg - next/required / Typecheck - SSG (push) Successful in 18s
packages/ssg - next/required / Build - SSG (push) Successful in 20s
packages/stl - next/required / Test - STL (push) Successful in 20s
packages/stl - next/required / Build - STL (push) Successful in 20s
packages/stl - next/required / Lint - STL (push) Successful in 21s
packages/stl - next/required / Typecheck - STL (push) Successful in 19s
packages/ui - next/required / Lint - UI (push) Successful in 30s
packages/ui - next/required / Typecheck - UI (push) Successful in 21s
packages/ui - next/required / Test - Unit (push) Successful in 27s
packages/ui - next/required / Build - Storybook (push) Successful in 30s
packages/ui - next/required / Build - UI (push) Successful in 23s
services/docs - next/required / Release - Docker Image (push) Successful in 32s
services/static - next/required / Lint - Static (push) Successful in 23s
services/static - next/required / Typecheck - Static (push) Successful in 21s
services/static - next/required / Build - Static Site (push) Successful in 23s
services/www - next/required / Lint - WWW (push) Successful in 27s
services/www - next/required / Typecheck - WWW (push) Successful in 22s
services/www - next/required / Build - Storybook (push) Successful in 28s
services/www - next/required / Test - Unit (push) Successful in 21s
services/www - next/required / Build - WWW Service (push) Successful in 40s
packages/kits - next/required / Test - Storybook (push) Successful in 1m37s
packages/ui - next/required / Test - Storybook (push) Successful in 1m56s
services/www - next/required / Test - Storybook (push) Canceled after 54s
services/docs - next/required / Deploy - Kubernetes (GitOps) (push) Failing after 2m16s
services/docs - next/required / Verify - Production Rollout (push) Skipped
services/static - next/required / Deploy - S3 (push) Failing after 4s
services/www - next/required / Build - Docker Image (push) Canceled after 0s
This commit is contained in:
1 parent
19df48e162
commit
91fd9652ea
4 files changed
+26
-9
No files matched your search
+23
-7
@@ -15,13 +15,29 @@ def main():
|
||||
if not re.fullmatch(r'deytenit/[A-Za-z0-9_.-]+',repository):
|
||||
raise ValueError('Unexpected repository owner')
|
||||
with tempfile.TemporaryDirectory(prefix='gitea-write-key-') as directory:
|
||||
key=Path(directory)/'key';key.write_text(os.environ['GIT_WRITE_KEY']);key.chmod(0o600)
|
||||
known=Path(__file__).resolve().parent.parent/'.gitea'/'known_hosts'
|
||||
if not known.exists():
|
||||
known=Path(__file__).resolve().parent.parent/'known_hosts'
|
||||
env=dict(os.environ);env.pop('GIT_WRITE_KEY',None)
|
||||
env['GIT_SSH_COMMAND']=shlex.join(['ssh','-T','-i',str(key),'-o','IdentitiesOnly=yes','-o','StrictHostKeyChecking=yes','-o','HostKeyAlgorithms=ssh-ed25519','-o','UserKnownHostsFile='+str(known)])
|
||||
subprocess.run(['git','push','ssh://git@git.ermnvldmr.com:22222/'+repository+'.git',ref],env=env,check=True)
|
||||
key = Path(directory) / 'key'
|
||||
key.write_text(os.environ['GIT_WRITE_KEY'])
|
||||
key.chmod(0o600)
|
||||
repo_root = Path(__file__).resolve().parents[2]
|
||||
candidates = [
|
||||
repo_root / '.gitea' / 'known_hosts',
|
||||
repo_root / 'ci' / 'known_hosts',
|
||||
Path(__file__).resolve().parent.parent / '.gitea' / 'known_hosts',
|
||||
Path(__file__).resolve().parent.parent / 'known_hosts',
|
||||
]
|
||||
known = next((c for c in candidates if c.exists()), None)
|
||||
if not known:
|
||||
raise FileNotFoundError(f'Could not find known_hosts in {[str(c) for c in candidates]}')
|
||||
env = dict(os.environ)
|
||||
env.pop('GIT_WRITE_KEY', None)
|
||||
env['GIT_SSH_COMMAND'] = shlex.join([
|
||||
'ssh', '-T', '-i', str(key),
|
||||
'-o', 'IdentitiesOnly=yes',
|
||||
'-o', 'StrictHostKeyChecking=yes',
|
||||
'-o', 'HostKeyAlgorithms=ssh-ed25519',
|
||||
'-o', f'UserKnownHostsFile={known}',
|
||||
])
|
||||
subprocess.run(['git', 'push', f'ssh://git@git.ermnvldmr.com:22222/{repository}.git', ref], env=env, check=True)
|
||||
|
||||
|
||||
if __name__=='__main__':main()
|
||||
Reference in new issue
Block a user