-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
Only extracting the zipped archives is still a bit error-prone and should be improved.
Expected directory structure:
- my_dir
- script.py
- artifacts
- repo_will_go_here
import subprocess
import os
import argparse
from io import StringIO
# NOTE: Invoke the CI run BundleStaticLibs.yml on the branch for which you want to publish a custom build.
# NOTE: Currently, you have to download the artifacts into the artifacts folder by hand.
# After downloading, it should contain
# - duckdb-static-libs-osx-arm64.zip
# - duckdb-static-libs-osx-amd64.zip
# - duckdb-static-libs-linux-arm64.zip
# - duckdb-static-libs-linux-amd64.zip
# - duckdb-static-libs-windows-amd64.zip
# NOTE: Make sure your fork has the latest main of duckdb-go-bindings.
owner = "taniabogatsch"
custom_build_branch = "v1.4-custom"
# NOTE: Don't change the v0 (major version).
bindings_version = 'v0.4.0'
names = [
"static-libs-osx-arm64",
"static-libs-osx-amd64",
"static-libs-linux-arm64",
"static-libs-linux-amd64",
"static-libs-windows-mingw",
]
binding_repos = [
"darwin-arm64",
"darwin-amd64",
"linux-arm64",
"linux-amd64",
"windows-amd64",
]
print('Check out repository and branch.')
subprocess.run(["git", "clone", f'git@github.com:{owner}/duckdb-go-bindings.git'])
subprocess.run(['git', '-C', 'duckdb-go-bindings/.', 'checkout', '-b', custom_build_branch])
# TODO: unzipping doesn't work reliably yet, maybe we assume unzipped?
# print('Delete existing files and unzip new files.')
# for idx, repo in enumerate(binding_repos):
# subprocess.run(["unzip", f'artifacts/duckdb-{names[idx]}.zip', '-d', f'duckdb-go-bindings/{repo}'])
# subprocess.run(["unzip", '-o', f'duckdb-go-bindings/{repo}/{names[idx]}.zip', '-d', f'duckdb-go-bindings/{repo}/'])
# subprocess.run(['rm', '-f', f'duckdb-go-bindings/{repo}/{names[idx]}.zip'])
#
# subprocess.run(['rm', '-f', f'duckdb-go-bindings/duckdb.h'])
# subprocess.run(['cp', 'duckdb-go-bindings/darwin-arm64/duckdb.h', 'duckdb-go-bindings/duckdb.h'])
print('Replace all paths.')
for repo in binding_repos:
subprocess.run(['sed', '-i', '', f's_github.com/duckdb/duckdb-go-bindings_github.com/{owner}/duckdb-go-bindings_g', f'duckdb-go-bindings/{repo}/go.mod'])
subprocess.run(['sed', '-i', '', f's_github.com/duckdb/duckdb-go-bindings_github.com/{owner}/duckdb-go-bindings_g', f'duckdb-go-bindings/go.mod'])
print('Remove SQLite test.')
for repo in binding_repos:
subprocess.run(['rm', '-f', f'duckdb-go-bindings/{repo}/bindings_extensions_test.go'])
subprocess.run(['rm', '-f', f'duckdb-go-bindings/bindings_extensions_test.go'])
print('Push the duckdb-go-bindings branch.')
subprocess.run(['git', '-C', 'duckdb-go-bindings/.', 'add', '.'])
subprocess.run(['git', '-C', 'duckdb-go-bindings/.', 'commit', '-m', 'push custom libraries'])
subprocess.run(['git', '-C', 'duckdb-go-bindings/.', 'push', '--set-upstream', 'origin', custom_build_branch])
print('Push the duckdb-go-bindings tags.')
for repo in binding_repos:
subprocess.run(['git', '-C', 'duckdb-go-bindings/.', 'tag', f'{repo}/{bindings_version}'])
subprocess.run(['git', '-C', 'duckdb-go-bindings/.', 'push', 'origin', f'{repo}/{bindings_version}'])
subprocess.run(['git', '-C', 'duckdb-go-bindings/.', 'tag', f'{bindings_version}'])
subprocess.run(['git', '-C', 'duckdb-go-bindings/.', 'push', 'origin', f'{bindings_version}'])
Metadata
Metadata
Assignees
Labels
No labels