diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4340f802ab..50914e9c46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -617,6 +617,28 @@ jobs: root_location: ${{ matrix.root_location || 'partition=2' }} shrink_image: ${{ matrix.shrink_image || 'yes' }} commands: java -jar *.jar --smoketest --platform=${{ matrix.plat_override }} + # Make sure log files contains the image metadata record + - name: Verify image has metadata + run: | + set -e + logs=(photonvision_config/logs/*) + if [ "${logs[0]}" = 'photonvision_config/logs/*' ]; then + echo "No logs found in photonvision_config/logs" >&2 + exit 1 + fi + if [ ${#logs[@]} -ne 1 ]; then + echo "Expected exactly one file in photonvision_config/logs, found ${#logs[@]}" >&2 + ls -1 photonvision_config/logs >&2 + exit 1 + fi + grep -Eq 'PhotonVision image data: ImageMetadata\[' "${logs[0]}" + if: ${{ (matrix.os) != 'windows-2022' }} + # Upload config directory produced during smoketest + - uses: actions/upload-artifact@v7 + with: + archive: true + name: photonvision_smoketest-${{ matrix.image_suffix }} + path: photonvision_config matrix-checker: # This job always runs last to set the overall result based on the matrix jobs. If any matrix job failed, this job will fail. diff --git a/photon-core/src/main/java/org/photonvision/common/configuration/ConfigManager.java b/photon-core/src/main/java/org/photonvision/common/configuration/ConfigManager.java index 0360c49111..e8b47c3ae9 100644 --- a/photon-core/src/main/java/org/photonvision/common/configuration/ConfigManager.java +++ b/photon-core/src/main/java/org/photonvision/common/configuration/ConfigManager.java @@ -188,7 +188,9 @@ private static Path getRootFolder() { } public static Path getImageMetadataPath() { - return Path.of(getRootFolder().toString(), "image-metadata.json"); + // Every image PhotonVision provides places this file in /opt/photonvision/; hard-code that + // assumption + return Path.of("/opt/photonvision/image-metadata.json"); } ConfigManager(Path configDirectory, ConfigProvider provider) { diff --git a/photon-core/src/main/java/org/photonvision/common/hardware/OsImageData.java b/photon-core/src/main/java/org/photonvision/common/hardware/OsImageData.java index d7c24651c8..d3ac2a10fb 100644 --- a/photon-core/src/main/java/org/photonvision/common/hardware/OsImageData.java +++ b/photon-core/src/main/java/org/photonvision/common/hardware/OsImageData.java @@ -37,8 +37,7 @@ public class OsImageData { private static final Logger logger = new Logger(OsImageData.class, LogGroup.General); - private static File imageMetadataFile = - ConfigManager.getInstance().getImageMetadataPath().toFile(); + private static File imageMetadataFile = ConfigManager.getImageMetadataPath().toFile(); public static final Optional IMAGE_METADATA = getImageMetadata();