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
import dataclasses
from functools import lru_cache
import json
from typing import TypeVar
@ -21,3 +23,14 @@ class Freezable:
def cache(user_function: Callable[..., _RT], /) -> Callable[..., _RT]:
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
TARGET_DIR=$2
if [ -f /TICI ]; then
FILES_SRC="release/files_tici"
else
echo "no release files set"
exit 1
fi
FILES_SRC="release/files_pc"
# if [ -f /TICI ]; then
# FILES_SRC="release/files_tici"
# else
# echo "no release files set"
# exit 1
# fi
cd $SOURCE_DIR
cp -pR --parents $(cat release/files_*) $TARGET_DIR/

@ -4,6 +4,7 @@ import argparse
import pathlib
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__":
@ -16,7 +17,7 @@ if __name__ == "__main__":
target_dir = pathlib.Path(args.target_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)
digest, caidx = create_casync_release(target_dir, output_dir, args.channel)

@ -1,13 +1,12 @@
import json
import pathlib
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"]
VERSION_METADATA_FILE = "version.json" # file that contains details of the current release
CASYNC_FILES = [VERSION_METADATA_FILE, ".caexclude"]
CASYNC_FILES = [BUILD_METADATA_FILENAME, ".caexclude"]
def run(cmd):
@ -38,20 +37,9 @@ def create_caexclude_file(path: pathlib.Path):
f.write(f"!{file}\n")
def create_version_metadata(channel, version, release_notes):
return {
"name": channel,
"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_version_metadata_file(path: pathlib.Path, build_metadata: BuildMetadata):
with open(path / BUILD_METADATA_FILENAME, "w") as f:
f.write(json_dump_dataclass(build_metadata))
def create_casync_release(target_dir: pathlib.Path, output_dir: pathlib.Path, channel: str):

Loading…
Cancel
Save