mirror of
https://github.com/foomo/coreml-service-yolov8.git
synced 2025-10-16 12:25:42 +00:00
feat: release scripting
This commit is contained in:
parent
937ff0f3cb
commit
e3ea82f663
46
Makefile
Normal file
46
Makefile
Normal file
@ -0,0 +1,46 @@
|
||||
RELEASE_TAG=`git describe --tags || echo "dev"`
|
||||
ABS_MAKEFILE=$(realpath $(MAKEFILE_LIST))
|
||||
BUILD_DIR=`dirname ${ABS_MAKEFILE}`/.build
|
||||
DOWNLOAD_PACKAGE_DIR=${BUILD_DIR}/downloadpackage
|
||||
MODEL_EXPORT_DIR=${BUILD_DIR}/model-export
|
||||
ZIP_NAME=coreml-service-yolov8m-${RELEASE_TAG}.zip
|
||||
DOWNLOAD_PACKAGE_ZIP=${DOWNLOAD_PACKAGE_DIR}/${ZIP_NAME}
|
||||
SERVER_FILE_IN_PACKAGE=${DOWNLOAD_PACKAGE_DIR}/coreml-service-yolov8m
|
||||
|
||||
|
||||
test-identity:
|
||||
@echo "checking code signing identity"
|
||||
@if [ -z "${CODE_SIGNING_IDENTITY}" ]; then echo "please set CODE_SIGNING_IDENTITY" && exit 1 ; fi
|
||||
@echo "signing .... with ${CODE_SIGNING_IDENTITY} for ${RELEASE_TAG}"
|
||||
|
||||
clean: test-identity
|
||||
@echo "------- CLEANING -------"
|
||||
mkdir -p ${BUILD_DIR}
|
||||
mkdir -p ${DOWNLOAD_PACKAGE_DIR}
|
||||
mkdir -p ${MODEL_EXPORT_DIR}
|
||||
rm -Rvf ${DOWNLOAD_PACKAGE_DIR}/*
|
||||
rm -Rvf ${MODEL_EXPORT_DIR}/*
|
||||
|
||||
build-server:
|
||||
@echo "------- swift server build -------"
|
||||
swift build -c release
|
||||
|
||||
transform-model-to-core-ml:
|
||||
@echo "------- transforming model for core ml use -------"
|
||||
MODEL_EXPORT_DIR=${MODEL_EXPORT_DIR} ./transform-model-to-core-ml.sh
|
||||
|
||||
move-to-download-package:
|
||||
@echo "--------- moving things into place ---------"
|
||||
mv ${MODEL_EXPORT_DIR}/yolov8m-oiv7.mlmodelc ${DOWNLOAD_PACKAGE_DIR}/.
|
||||
mv ${BUILD_DIR}/release/app ${SERVER_FILE_IN_PACKAGE}
|
||||
|
||||
codesign:
|
||||
@echo "--------- todo sign app ---------"
|
||||
echo "TODO: code sign ${SERVER_FILE_IN_PACKAGE}"
|
||||
|
||||
release: clean build-server transform-model-to-core-ml move-to-download-package codesign
|
||||
@echo "--------- building download pkg ---------"
|
||||
cd ${DOWNLOAD_PACKAGE_DIR} && zip -r ${ZIP_NAME} . && shasum -a 256 ${ZIP_NAME}
|
||||
|
||||
|
||||
|
||||
@ -1,2 +1,11 @@
|
||||
# coreml-service-yolov8
|
||||
|
||||
vapor server with a generic REST API for a Core ML version of YOLOv8 from https://github.com/ultralytics/ultralytics
|
||||
|
||||
# Releasing
|
||||
|
||||
- set a git tag
|
||||
|
||||
```shell
|
||||
CODE_SIGNING_IDENTITY="<you code signing id>" make release
|
||||
```
|
||||
12
environment.yml
Normal file
12
environment.yml
Normal file
@ -0,0 +1,12 @@
|
||||
name: coreml-service-yolov8
|
||||
channels:
|
||||
- conda-forge
|
||||
- defaults
|
||||
dependencies:
|
||||
- python=3.10
|
||||
- pip:
|
||||
- torch
|
||||
- torchaudio
|
||||
- torchvision
|
||||
- coremltools
|
||||
- ultralytics
|
||||
24
transform-model-to-core-ml.sh
Executable file
24
transform-model-to-core-ml.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# needs a mac
|
||||
|
||||
# install miniconda
|
||||
echo "setting up conda in ${MODEL_EXPORT_DIR}"
|
||||
brew install miniconda
|
||||
eval "$(conda "shell.$(basename "${SHELL}")" hook)"
|
||||
|
||||
# cleanup previous attempt gracefully
|
||||
conda init
|
||||
conda deactivate || echo "nothing to conda deactivate"
|
||||
conda remove -y -n coreml-service-yolov8 --all || echo "no env to remove"
|
||||
|
||||
# create env from file
|
||||
conda env create -f environment.yml
|
||||
conda init
|
||||
# activate env
|
||||
conda activate coreml-service-yolov8
|
||||
|
||||
# coreml export and conversion
|
||||
cd ${MODEL_EXPORT_DIR}
|
||||
yolo export model=yolov8m-oiv7.pt format=coreml nms=True
|
||||
xcrun coremlcompiler compile yolov8m-oiv7.mlpackage ${MODEL_EXPORT_DIR}
|
||||
Loading…
Reference in New Issue
Block a user