Browse Source

Merge remote-tracking branch 'upstream/master'

pull/434/head
phdsg 7 years ago
parent
commit
9fe6e18a99
1 changed files with 70 additions and 0 deletions
  1. +70
    -0
      scripts/build_updates.py

+ 70
- 0
scripts/build_updates.py View File

@@ -0,0 +1,70 @@
import glob
import json
import time
import os


def build_mac(slug):
env = f'CC=x86_64-apple-darwin15-clang CXX=x86_64-apple-darwin15-clang++-libc++ STRIP=x86_64-apple-darwin15-strip RACK_DIR=../../Rack-SDK'
make = f'{env} make -j$(nproc) -C repos/{slug}'
if os.system(f'{make} clean'):
raise Exception(f"Could not clean Mac build of {slug}")
if os.system(f'{make} dist'):
raise Exception(f"Could not make Mac build of {slug}")


def build_win(slug):
env = f'CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ STRIP=x86_64-w64-mingw32-strip RACK_DIR=../../Rack-SDK'
make = f'{env} make -j$(nproc) -C repos/{slug}'
if os.system(f'{make} clean'):
raise Exception(f"Could not clean Windows build of {slug}")
if os.system(f'{make} dist'):
raise Exception(f"Could not make Windows build of {slug}")


def build_lin(slug):
env = f'-e RACK_DIR=../../Rack-SDK'
make = f'make -j$(nproc) -C repos/{slug}'
if os.system(f'docker run --rm -v $(pwd):/mnt -u vortico {env} a0b9c87ec456 {make} clean'):
raise Exception(f"Could not clean Linux build of {slug}")
if os.system(f'docker run --rm -v $(pwd):/mnt -u vortico {env} a0b9c87ec456 {make} dist'):
raise Exception(f"Could not make Linux build of {slug}")


def move_package(slug):
os.system('mkdir -p downloads')
if os.system(f'mv repos/{slug}/dist/{slug}-*.zip downloads/'):
raise Exception(f"No package found for {slug}")


for filename in glob.glob("manifests/*"):
slug = os.path.splitext(os.path.basename(filename))[0]
with open(filename, "r") as f:
manifest = json.load(f)

# Skip if update is not needed
if 'repoVersion' not in manifest:
continue
if 'latestVersion' in manifest and manifest['latestVersion'] == manifest['repoVersion']:
continue
if not os.path.exists('repos/' + slug):
continue

try:
build_mac(slug)
move_package(slug)
build_win(slug)
move_package(slug)
build_lin(slug)
move_package(slug)
except Exception as e:
print(e)
break

# Update build information
manifest['latestVersion'] = manifest['repoVersion']
manifest['buildTimestamp'] = round(time.time())
manifest['status'] = "available"

with open(filename, "w") as f:
json.dump(manifest, f, indent=" ")

Loading…
Cancel
Save