use build_metadata

pull/31880/head
Justin Newberry 1 year ago
parent dd392b6d45
commit c85f1c4f4a
  1. 13
      common/utils.py
  2. 14
      release/copy_build_files.sh
  3. 3
      release/create_casync_release.py
  4. 24
      system/updated/casync/common.py

@ -1,5 +1,7 @@
from collections.abc import Callable from collections.abc import Callable
import dataclasses
from functools import lru_cache from functools import lru_cache
import json
from typing import TypeVar from typing import TypeVar
@ -21,3 +23,14 @@ class Freezable:
def cache(user_function: Callable[..., _RT], /) -> Callable[..., _RT]: def cache(user_function: Callable[..., _RT], /) -> Callable[..., _RT]:
return lru_cache(maxsize=None)(user_function) return lru_cache(maxsize=None)(user_function)
class DataClassJSONEncoder(json.JSONEncoder):
def default(self, o):
if dataclasses.is_dataclass(o):
return dataclasses.asdict(o)
return super().default(o)
def json_dump_dataclass(foo):
return json.dumps(foo, cls=DataClassJSONEncoder)

@ -3,12 +3,14 @@
SOURCE_DIR=$1 SOURCE_DIR=$1
TARGET_DIR=$2 TARGET_DIR=$2
if [ -f /TICI ]; then FILES_SRC="release/files_pc"
FILES_SRC="release/files_tici"
else # if [ -f /TICI ]; then
echo "no release files set" # FILES_SRC="release/files_tici"
exit 1 # else
fi # echo "no release files set"
# exit 1
# fi
cd $SOURCE_DIR cd $SOURCE_DIR
cp -pR --parents $(cat release/files_*) $TARGET_DIR/ cp -pR --parents $(cat release/files_*) $TARGET_DIR/

@ -4,6 +4,7 @@ import argparse
import pathlib import pathlib
from openpilot.system.updated.casync.common import create_caexclude_file, create_casync_release, create_version_metadata_file from openpilot.system.updated.casync.common import create_caexclude_file, create_casync_release, create_version_metadata_file
from openpilot.system.version import get_build_metadata
if __name__ == "__main__": if __name__ == "__main__":
@ -16,7 +17,7 @@ if __name__ == "__main__":
target_dir = pathlib.Path(args.target_dir) target_dir = pathlib.Path(args.target_dir)
output_dir = pathlib.Path(args.output_dir) output_dir = pathlib.Path(args.output_dir)
create_version_metadata_file(target_dir, args.channel) create_version_metadata_file(target_dir, get_build_metadata())
create_caexclude_file(target_dir) create_caexclude_file(target_dir)
digest, caidx = create_casync_release(target_dir, output_dir, args.channel) digest, caidx = create_casync_release(target_dir, output_dir, args.channel)

@ -1,13 +1,12 @@
import json
import pathlib import pathlib
import subprocess import subprocess
from openpilot.system.version import get_release_notes, get_version from openpilot.common.utils import json_dump_dataclass
from openpilot.system.version import BUILD_METADATA_FILENAME, BuildMetadata
CASYNC_ARGS = ["--with=symlinks", "--with=permissions"] CASYNC_ARGS = ["--with=symlinks", "--with=permissions"]
VERSION_METADATA_FILE = "version.json" # file that contains details of the current release CASYNC_FILES = [BUILD_METADATA_FILENAME, ".caexclude"]
CASYNC_FILES = [VERSION_METADATA_FILE, ".caexclude"]
def run(cmd): def run(cmd):
@ -38,20 +37,9 @@ def create_caexclude_file(path: pathlib.Path):
f.write(f"!{file}\n") f.write(f"!{file}\n")
def create_version_metadata(channel, version, release_notes): def create_version_metadata_file(path: pathlib.Path, build_metadata: BuildMetadata):
return { with open(path / BUILD_METADATA_FILENAME, "w") as f:
"name": channel, f.write(json_dump_dataclass(build_metadata))
"openpilot": {
"version": version,
"release_notes": release_notes
}
}
def create_version_metadata_file(path: pathlib.Path, channel: str):
version = get_version(str(path))
release_notes = get_release_notes(str(path))
with open(path / VERSION_METADATA_FILE, "w") as f:
f.write(json.dumps(create_version_metadata(channel, version, release_notes)))
def create_casync_release(target_dir: pathlib.Path, output_dir: pathlib.Path, channel: str): def create_casync_release(target_dir: pathlib.Path, output_dir: pathlib.Path, channel: str):

Loading…
Cancel
Save