From d71760f5952361aa712ee7bf7089330be609c467 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 14:37:15 +0700 Subject: [PATCH 01/70] feat: add ci for python package --- .github/workflows/python-package.yml | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/python-package.yml diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml new file mode 100644 index 000000000..63b472632 --- /dev/null +++ b/.github/workflows/python-package.yml @@ -0,0 +1,67 @@ +name: Build and Package Python Library + +on: + push: + branches: [ feat/python-package-ci ] + workflow_dispatch: + inputs: + model_dir: + description: "Path to model directory in janhq/models repo" + required: true + + +env: + MODEL_DIR: models/whispervq # ${{ inputs.model_dir }} + +jobs: + build-and-test: + runs-on: ${{ matrix.runs-on }} + timeout-minutes: 60 + strategy: + fail-fast: false + matrix: + include: + - os: "linux" + name: "amd64" + runs-on: "ubuntu-20-04-cuda-12-0" + - os: "mac" + name: "amd64" + runs-on: "macos-selfhosted-12" + - os: "mac" + name: "arm64" + runs-on: "macos-silicon" + - os: "windows" + name: "amd64" + runs-on: "windows-cuda-12-0" + steps: + - name: Clone + id: checkout + uses: actions/checkout@v3 + with: + submodules: recursive + repository: janhq/models + ref: "feat/ci-python-models" + + - name: use python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: prepare python package windows + if : runner.os == 'windows' + run: | + where python + + - name: Install dependencies Windows and Linux + if: runner.os == 'windows' || runner.os == 'linux' + run: | + python3 -m pip install --upgrade pip + python3 -m pip install -r ${{MODEL_DIR}}/requirements.cuda.txt + + - name: Install dependencies Mac + if: runner.os == 'mac' + run: | + python3 -m pip install --upgrade pip + python3 -m pip install -r ${{MODEL_DIR}}/requirements.txt + + \ No newline at end of file From c47cef563c94c83f1191e6c866eb1218bc5a8abb Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 14:39:53 +0700 Subject: [PATCH 02/70] feat: add ci for python package --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 63b472632..65aee80f1 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -56,12 +56,12 @@ jobs: if: runner.os == 'windows' || runner.os == 'linux' run: | python3 -m pip install --upgrade pip - python3 -m pip install -r ${{MODEL_DIR}}/requirements.cuda.txt + python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - name: Install dependencies Mac if: runner.os == 'mac' run: | python3 -m pip install --upgrade pip - python3 -m pip install -r ${{MODEL_DIR}}/requirements.txt + python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.txt \ No newline at end of file From 4f2dff5762d8f72c2bd073c8ba2a5d65bb80411a Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 15:07:53 +0700 Subject: [PATCH 03/70] feat: add ci for python package --- .github/workflows/python-package.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 65aee80f1..300ce4a30 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -51,6 +51,7 @@ jobs: if : runner.os == 'windows' run: | where python + - name: Install dependencies Windows and Linux if: runner.os == 'windows' || runner.os == 'linux' @@ -59,7 +60,7 @@ jobs: python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - name: Install dependencies Mac - if: runner.os == 'mac' + if: runner.os == 'macOS' run: | python3 -m pip install --upgrade pip python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From 283f3a5b7941f887e50776795de371b2047abbe7 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 15:34:34 +0700 Subject: [PATCH 04/70] test --- .github/workflows/python-package.yml | 31 +++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 300ce4a30..bebb86af7 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -50,19 +50,26 @@ jobs: - name: prepare python package windows if : runner.os == 'windows' run: | - where python - - - - name: Install dependencies Windows and Linux - if: runner.os == 'windows' || runner.os == 'linux' + PYTHON_PATH=$(where python) + echo $PYTHON_PATH + + - name: prepare python package windows + if : runner.os != 'windows' run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + PYTHON_PATH=$(which python) + echo $PYTHON_PATH + + + # - name: Install dependencies Windows and Linux + # if: runner.os == 'windows' || runner.os == 'linux' + # run: | + # python3 -m pip install --upgrade pip + # python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - - name: Install dependencies Mac - if: runner.os == 'macOS' - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.txt + # - name: Install dependencies Mac + # if: runner.os == 'macOS' + # run: | + # python3 -m pip install --upgrade pip + # python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.txt \ No newline at end of file From eb2b472cc2ec1d292c7800d1b36479b29e888cbc Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 15:43:24 +0700 Subject: [PATCH 05/70] test --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index bebb86af7..71de01968 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -50,7 +50,7 @@ jobs: - name: prepare python package windows if : runner.os == 'windows' run: | - PYTHON_PATH=$(where python) + PYTHON_PATH = $(where python) echo $PYTHON_PATH - name: prepare python package windows From 92e2e66e2132afa63a7100b0e5b5211eacacc06c Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 15:44:50 +0700 Subject: [PATCH 06/70] test --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 71de01968..f57455404 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -50,7 +50,7 @@ jobs: - name: prepare python package windows if : runner.os == 'windows' run: | - PYTHON_PATH = $(where python) + set PYTHON_PATH=$(where python) echo $PYTHON_PATH - name: prepare python package windows From 25099d0b358a53952840a4ea43326df5861d645c Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 15:46:39 +0700 Subject: [PATCH 07/70] test --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index f57455404..21bc1397b 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -51,7 +51,7 @@ jobs: if : runner.os == 'windows' run: | set PYTHON_PATH=$(where python) - echo $PYTHON_PATH + echo %PYTHON_PATH% - name: prepare python package windows if : runner.os != 'windows' From 6c28a255d8368f10845ecb1361a2a2932c49a80f Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 15:52:03 +0700 Subject: [PATCH 08/70] test --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 21bc1397b..8cb9a1dc3 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -51,7 +51,7 @@ jobs: if : runner.os == 'windows' run: | set PYTHON_PATH=$(where python) - echo %PYTHON_PATH% + echo $env:PYTHON_PATH - name: prepare python package windows if : runner.os != 'windows' From b4db1d60c6e7c55b98dd2caf6cca8aaedf41d4d1 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 15:57:34 +0700 Subject: [PATCH 09/70] test --- .github/workflows/python-package.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 8cb9a1dc3..2db406dee 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -49,9 +49,10 @@ jobs: - name: prepare python package windows if : runner.os == 'windows' + shell: powershell run: | - set PYTHON_PATH=$(where python) - echo $env:PYTHON_PATH + Env:PYTHON_PATH = $(where python) + $Env:PYTHON_PATH - name: prepare python package windows if : runner.os != 'windows' From 24235c828c9915cc9c7f57270eb97809dd273499 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 15:59:22 +0700 Subject: [PATCH 10/70] test --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 2db406dee..9dcdeb48a 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -51,7 +51,7 @@ jobs: if : runner.os == 'windows' shell: powershell run: | - Env:PYTHON_PATH = $(where python) + $Env:PYTHON_PATH = $(where python) $Env:PYTHON_PATH - name: prepare python package windows From 2d8da922d2a1449af387e5c1c9bcffdd6cf712c5 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 16:02:14 +0700 Subject: [PATCH 11/70] test --- .github/workflows/python-package.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9dcdeb48a..8aeb778d3 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -49,10 +49,9 @@ jobs: - name: prepare python package windows if : runner.os == 'windows' - shell: powershell run: | - $Env:PYTHON_PATH = $(where python) - $Env:PYTHON_PATH + setx PYTHON_PATH $(where python) + set - name: prepare python package windows if : runner.os != 'windows' From 18889df51972e3415737237c4a759944fc427a0d Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 16:13:08 +0700 Subject: [PATCH 12/70] test --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 8aeb778d3..2c5737252 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -50,8 +50,8 @@ jobs: - name: prepare python package windows if : runner.os == 'windows' run: | - setx PYTHON_PATH $(where python) - set + for /f "delims=" %a in ('where python') do set "PYTHON_PATH=%a" + echo %PYTHON_PATH% - name: prepare python package windows if : runner.os != 'windows' From f4318bb5aa88359dddfa7dc2169477a39d4c7ed9 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 16:26:03 +0700 Subject: [PATCH 13/70] test --- .github/workflows/python-package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 2c5737252..9b591ff05 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -49,6 +49,7 @@ jobs: - name: prepare python package windows if : runner.os == 'windows' + shell: cmd run: | for /f "delims=" %a in ('where python') do set "PYTHON_PATH=%a" echo %PYTHON_PATH% From 6f45cf378a5b9bc02e63374f8fc73b21c75b7530 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 16:35:39 +0700 Subject: [PATCH 14/70] test --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9b591ff05..1ab9e0f2c 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -51,7 +51,7 @@ jobs: if : runner.os == 'windows' shell: cmd run: | - for /f "delims=" %a in ('where python') do set "PYTHON_PATH=%a" + for /f "delims=" %a in ('where python') do set PYTHON_PATH=%a echo %PYTHON_PATH% - name: prepare python package windows From 1a86d50a0fa1a31adc9db310d40d1626338debfb Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 16:38:23 +0700 Subject: [PATCH 15/70] test --- .github/workflows/python-package.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 1ab9e0f2c..6ebc33a4f 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -51,7 +51,8 @@ jobs: if : runner.os == 'windows' shell: cmd run: | - for /f "delims=" %a in ('where python') do set PYTHON_PATH=%a + where python + for /f %a in ('where python') do set PYTHON_PATH=%a echo %PYTHON_PATH% - name: prepare python package windows From 1db391878547983c47935486bde310c27e9f1a0b Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 16:39:43 +0700 Subject: [PATCH 16/70] test --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 6ebc33a4f..972aeff41 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -51,8 +51,8 @@ jobs: if : runner.os == 'windows' shell: cmd run: | - where python - for /f %a in ('where python') do set PYTHON_PATH=%a + where python3 + for /f %a in ('where python3') do set PYTHON_PATH=%a echo %PYTHON_PATH% - name: prepare python package windows From dfa248fb991971c879568aa0f361bdd87998b7aa Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 16:43:09 +0700 Subject: [PATCH 17/70] test --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 972aeff41..1dc66a475 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -52,7 +52,7 @@ jobs: shell: cmd run: | where python3 - for /f %a in ('where python3') do set PYTHON_PATH=%a + for /f "delims=" %%a in ('where python') do set "PYTHON_PATH=%%a" echo %PYTHON_PATH% - name: prepare python package windows From e1373f23f57f4c10a3bf6fa500c460d8c9079593 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 17:52:17 +0700 Subject: [PATCH 18/70] test package unix --- .github/workflows/python-package.yml | 40 +++++++++++++++++----------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 1dc66a475..1fb2006f4 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -8,10 +8,14 @@ on: model_dir: description: "Path to model directory in janhq/models repo" required: true + model_name: + description: "name of model to be release" + required: true env: MODEL_DIR: models/whispervq # ${{ inputs.model_dir }} + MODEL_NAME: whispervq # ${{ inputs.model_name }} jobs: build-and-test: @@ -47,21 +51,6 @@ jobs: with: python-version: "3.11" - - name: prepare python package windows - if : runner.os == 'windows' - shell: cmd - run: | - where python3 - for /f "delims=" %%a in ('where python') do set "PYTHON_PATH=%%a" - echo %PYTHON_PATH% - - - name: prepare python package windows - if : runner.os != 'windows' - run: | - PYTHON_PATH=$(which python) - echo $PYTHON_PATH - - # - name: Install dependencies Windows and Linux # if: runner.os == 'windows' || runner.os == 'linux' # run: | @@ -73,5 +62,24 @@ jobs: # run: | # python3 -m pip install --upgrade pip # python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.txt + - name: prepare python package windows + if : runner.os == 'windows' + shell: cmd + run: | + for /f "delims=" %%a in ('where python') do set "PYTHON_PATH=%%a" + echo %PYTHON_PATH% + + - name: prepare python package unix + if : runner.os != 'windows' + run: | + PYTHON_PATH=$(which python) + echo $PYTHON_PATH + PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) + echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV + echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - \ No newline at end of file + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} + path: ${{env.PYTHON_FOLDER}} \ No newline at end of file From 940928244d53de87945a9d83bacbb2103c2063e4 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 18:49:25 +0700 Subject: [PATCH 19/70] test package mac arm --- .github/workflows/python-package.yml | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 1fb2006f4..d34705935 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -51,17 +51,18 @@ jobs: with: python-version: "3.11" - # - name: Install dependencies Windows and Linux - # if: runner.os == 'windows' || runner.os == 'linux' - # run: | - # python3 -m pip install --upgrade pip - # python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + - name: Install dependencies Windows and Linux + if: runner.os == 'windows' || runner.os == 'linux' + run: | + python3 -m pip install --upgrade pip + python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - # - name: Install dependencies Mac - # if: runner.os == 'macOS' - # run: | - # python3 -m pip install --upgrade pip - # python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.txt + - name: Install dependencies Mac + if: runner.os == 'macOS' + run: | + python3 -m pip install --upgrade pip + python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.txt + - name: prepare python package windows if : runner.os == 'windows' shell: cmd @@ -79,7 +80,8 @@ jobs: echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - name: Upload Artifact + if : runner.os == 'macOS' uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} - path: ${{env.PYTHON_FOLDER}} \ No newline at end of file + path: /Library/Frameworks/Python.framework/Versions/3.11 \ No newline at end of file From 7fd1a0e44fcf89cb35da70a7c978df5bf28e8175 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 19:27:21 +0700 Subject: [PATCH 20/70] test package using miniconda --- .github/workflows/python-package.yml | 59 +++++++++++++++++++++------- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index d34705935..d75b99dd1 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -46,42 +46,73 @@ jobs: repository: janhq/models ref: "feat/ci-python-models" - - name: use python - uses: actions/setup-python@v5 - with: - python-version: "3.11" + - name: Install Miniconda on Linux + if: runner.os == 'Linux' + run: | + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh + bash miniconda.sh -b -p $HOME/miniconda + echo "$HOME/miniconda/bin" >> $GITHUB_PATH + + - name: Install Miniconda on macOS + if: runner.os == 'macOS' + run: | + if [ "$(uname -m)" = "arm64" ]; then + echo "Running on macOS ARM" + MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh" + else + echo "Running on macOS Intel" + MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" + fi + echo "Downloading Miniconda from $MINICONDA_URL" + curl -L $MINICONDA_URL -o miniconda.sh + bash miniconda.sh -b -p $HOME/miniconda + echo "$HOME/miniconda/bin" >> $GITHUB_PATH + + - name: Install Miniconda on Windows + if: runner.os == 'Windows' + shell: cmd + run: | + curl -o miniconda.exe https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe + start /wait "" miniconda.exe /InstallationType=JustMe /AddToPath=1 /RegisterPython=0 /S /D=%UserProfile%\Miniconda + echo %UserProfile%\Miniconda >> %GITHUB_PATH% - name: Install dependencies Windows and Linux if: runner.os == 'windows' || runner.os == 'linux' run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + conda create -y -n ${{env.MODEL_NAME}} python=3.11 + conda activate ${{env.MODEL_NAME}} + python -m pip install --upgrade pip + python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - name: Install dependencies Mac if: runner.os == 'macOS' run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.txt + conda create -y -n ${{env.MODEL_NAME}} python=3.11 + conda activate ${{env.MODEL_NAME}} + python -m pip install --upgrade pip + python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt - name: prepare python package windows if : runner.os == 'windows' shell: cmd run: | + conda activate ${{env.MODEL_NAME}} for /f "delims=" %%a in ('where python') do set "PYTHON_PATH=%%a" echo %PYTHON_PATH% - name: prepare python package unix if : runner.os != 'windows' run: | + conda activate ${{env.MODEL_NAME}} PYTHON_PATH=$(which python) echo $PYTHON_PATH PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - - name: Upload Artifact - if : runner.os == 'macOS' - uses: actions/upload-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} - path: /Library/Frameworks/Python.framework/Versions/3.11 \ No newline at end of file + # - name: Upload Artifact + # if : runner.os == 'macOS' + # uses: actions/upload-artifact@v4 + # with: + # name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} + # path: /Library/Frameworks/Python.framework/Versions/3.11 \ No newline at end of file From 66c96e98bac579aa33b7d1cdf9740ccbf012e8de Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 19:48:28 +0700 Subject: [PATCH 21/70] test package using miniconda --- .github/workflows/python-package.yml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index d75b99dd1..9ebf6c769 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -73,13 +73,23 @@ jobs: shell: cmd run: | curl -o miniconda.exe https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe - start /wait "" miniconda.exe /InstallationType=JustMe /AddToPath=1 /RegisterPython=0 /S /D=%UserProfile%\Miniconda - echo %UserProfile%\Miniconda >> %GITHUB_PATH% + start /wait "" miniconda.exe /InstallationType=JustMe /AddToPath=1 /RegisterPython=0 /S /D=Miniconda + echo Miniconda >> %GITHUB_PATH% + - name: Install dependencies Windows + if: runner.os == 'windows' + run: | + Miniconda\_conda.exe init + conda create -y -n ${{env.MODEL_NAME}} python=3.11 + + conda activate ${{env.MODEL_NAME}} + python -m pip install --upgrade pip + python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - - name: Install dependencies Windows and Linux - if: runner.os == 'windows' || runner.os == 'linux' + - name: Install dependencies Linux + if: runner.os == 'linux' run: | conda create -y -n ${{env.MODEL_NAME}} python=3.11 + conda init conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -88,6 +98,7 @@ jobs: if: runner.os == 'macOS' run: | conda create -y -n ${{env.MODEL_NAME}} python=3.11 + conda init conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From c8b3d464fc9bbfa56639814795865aa571eadfcf Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 20:02:45 +0700 Subject: [PATCH 22/70] test package using miniconda --- .github/workflows/python-package.yml | 61 ++++++++++++++-------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9ebf6c769..5e664be14 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -34,9 +34,9 @@ jobs: - os: "mac" name: "arm64" runs-on: "macos-silicon" - - os: "windows" - name: "amd64" - runs-on: "windows-cuda-12-0" + # - os: "windows" + # name: "amd64" + # runs-on: "windows-cuda-12-0" steps: - name: Clone id: checkout @@ -46,35 +46,36 @@ jobs: repository: janhq/models ref: "feat/ci-python-models" - - name: Install Miniconda on Linux - if: runner.os == 'Linux' - run: | - wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh - bash miniconda.sh -b -p $HOME/miniconda - echo "$HOME/miniconda/bin" >> $GITHUB_PATH + # - name: Install Miniconda on Linux + # if: runner.os == 'Linux' + # run: | + # wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh + # bash miniconda.sh -b -p $HOME/miniconda + # echo "$HOME/miniconda/bin" >> $GITHUB_PATH - - name: Install Miniconda on macOS - if: runner.os == 'macOS' - run: | - if [ "$(uname -m)" = "arm64" ]; then - echo "Running on macOS ARM" - MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh" - else - echo "Running on macOS Intel" - MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" - fi - echo "Downloading Miniconda from $MINICONDA_URL" - curl -L $MINICONDA_URL -o miniconda.sh - bash miniconda.sh -b -p $HOME/miniconda - echo "$HOME/miniconda/bin" >> $GITHUB_PATH + # - name: Install Miniconda on macOS + # if: runner.os == 'macOS' + # run: | + # if [ "$(uname -m)" = "arm64" ]; then + # echo "Running on macOS ARM" + # MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh" + # else + # echo "Running on macOS Intel" + # MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" + # fi + # echo "Downloading Miniconda from $MINICONDA_URL" + # curl -L $MINICONDA_URL -o miniconda.sh + # bash miniconda.sh -b -p $HOME/miniconda + # echo "$HOME/miniconda/bin" >> $GITHUB_PATH - - name: Install Miniconda on Windows - if: runner.os == 'Windows' - shell: cmd - run: | - curl -o miniconda.exe https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe - start /wait "" miniconda.exe /InstallationType=JustMe /AddToPath=1 /RegisterPython=0 /S /D=Miniconda - echo Miniconda >> %GITHUB_PATH% + # - name: Install Miniconda on Windows + # if: runner.os == 'Windows' + # shell: pwsh + # run: | + # $minicondaUrl = 'https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe' + # Invoke-WebRequest -Uri $minicondaUrl -OutFile miniconda.exe + # Start-Process -FilePath miniconda.exe -ArgumentList '/InstallationType=JustMe', '/AddToPath=1', '/RegisterPython=0', '/S', ('/D=Miniconda3') -Wait + # echo "$env:USERPROFILE\\Miniconda3" >> $GITHUB_PATH - name: Install dependencies Windows if: runner.os == 'windows' run: | From 36cf7bdb8ab3f793859e96c093fedc82e038916f Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 20:06:18 +0700 Subject: [PATCH 23/70] test package using miniconda --- .github/workflows/python-package.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 5e664be14..3a19caa27 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -89,6 +89,7 @@ jobs: - name: Install dependencies Linux if: runner.os == 'linux' run: | + export PATH=$PATH:$HOME/miniconda/condabin/ conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda init conda activate ${{env.MODEL_NAME}} @@ -98,6 +99,7 @@ jobs: - name: Install dependencies Mac if: runner.os == 'macOS' run: | + export PATH=$PATH:$HOME/miniconda/condabin/ conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda init conda activate ${{env.MODEL_NAME}} From 097000190bf2f0c3bd67f85f079e5deeada877ad Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 20:09:33 +0700 Subject: [PATCH 24/70] test package using miniconda --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 3a19caa27..959a11b13 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -90,8 +90,8 @@ jobs: if: runner.os == 'linux' run: | export PATH=$PATH:$HOME/miniconda/condabin/ - conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda init + conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -100,8 +100,8 @@ jobs: if: runner.os == 'macOS' run: | export PATH=$PATH:$HOME/miniconda/condabin/ - conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda init + conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From 38268dd7ee477829d0fd5fff69112bd9c97b7397 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 20:11:51 +0700 Subject: [PATCH 25/70] test package using miniconda --- .github/workflows/python-package.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 959a11b13..4f803a5ee 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -92,6 +92,7 @@ jobs: export PATH=$PATH:$HOME/miniconda/condabin/ conda init conda create -y -n ${{env.MODEL_NAME}} python=3.11 + source activate base conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -102,6 +103,7 @@ jobs: export PATH=$PATH:$HOME/miniconda/condabin/ conda init conda create -y -n ${{env.MODEL_NAME}} python=3.11 + source activate base conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From 83a890d9d4d8dc87a930af41f40c24c5f95b8e57 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 20:14:21 +0700 Subject: [PATCH 26/70] test package using miniconda --- .github/workflows/python-package.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 4f803a5ee..9c87938ec 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -90,9 +90,8 @@ jobs: if: runner.os == 'linux' run: | export PATH=$PATH:$HOME/miniconda/condabin/ - conda init + conda init && source ~/.bashrc conda create -y -n ${{env.MODEL_NAME}} python=3.11 - source activate base conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -101,9 +100,8 @@ jobs: if: runner.os == 'macOS' run: | export PATH=$PATH:$HOME/miniconda/condabin/ - conda init + conda init && source ~/.zshrc conda create -y -n ${{env.MODEL_NAME}} python=3.11 - source activate base conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From 6b8caff421088b16934fcc5e3a0c1dcb50ae9aab Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 20:17:58 +0700 Subject: [PATCH 27/70] test package using miniconda --- .github/workflows/python-package.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9c87938ec..397f5e216 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -89,8 +89,8 @@ jobs: - name: Install dependencies Linux if: runner.os == 'linux' run: | - export PATH=$PATH:$HOME/miniconda/condabin/ - conda init && source ~/.bashrc + export PATH=$PATH:$HOME/miniconda/bin/ + conda init conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip @@ -99,8 +99,8 @@ jobs: - name: Install dependencies Mac if: runner.os == 'macOS' run: | - export PATH=$PATH:$HOME/miniconda/condabin/ - conda init && source ~/.zshrc + export PATH=$PATH:$HOME/miniconda/bin/ + conda init conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip From 2f07fc3ce60d58a1355e546b7baad5c6457974be Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 20:19:20 +0700 Subject: [PATCH 28/70] test package using miniconda --- .github/workflows/python-package.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 397f5e216..68bba8d68 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -92,6 +92,7 @@ jobs: export PATH=$PATH:$HOME/miniconda/bin/ conda init conda create -y -n ${{env.MODEL_NAME}} python=3.11 + source $HOME/miniconda/bin/activate base conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -102,6 +103,7 @@ jobs: export PATH=$PATH:$HOME/miniconda/bin/ conda init conda create -y -n ${{env.MODEL_NAME}} python=3.11 + source $HOME/miniconda/bin/activate base conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From d9bdf2a0e719a83b5ba35546d5d2d497156e1dd9 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 20:22:32 +0700 Subject: [PATCH 29/70] test package using miniconda --- .github/workflows/python-package.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 68bba8d68..29f4ff5c8 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -119,6 +119,8 @@ jobs: - name: prepare python package unix if : runner.os != 'windows' run: | + export PATH=$PATH:$HOME/miniconda/bin/ + source $HOME/miniconda/bin/activate base conda activate ${{env.MODEL_NAME}} PYTHON_PATH=$(which python) echo $PYTHON_PATH From dc11bd9e8539dd64c66a7b29d9a328e0acabd50e Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 5 Dec 2024 21:00:24 +0700 Subject: [PATCH 30/70] test package using miniconda --- .github/workflows/python-package.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 29f4ff5c8..3afbd72d2 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -128,9 +128,9 @@ jobs: echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - # - name: Upload Artifact - # if : runner.os == 'macOS' - # uses: actions/upload-artifact@v4 - # with: - # name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} - # path: /Library/Frameworks/Python.framework/Versions/3.11 \ No newline at end of file + - name: Upload Artifact + if : runner.os == 'macOS' + uses: actions/upload-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} + path: ${{env.PYTHON_FOLDER}} \ No newline at end of file From 75cafe6b1e3539c00608a0ec6599593e4628c68a Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Fri, 6 Dec 2024 12:18:51 +0700 Subject: [PATCH 31/70] Add upload artifact linux --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 3afbd72d2..646de4b17 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -129,7 +129,7 @@ jobs: echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - name: Upload Artifact - if : runner.os == 'macOS' + if : runner.os == 'macOS' || runner.os == 'linux' uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} From bd08950f6f8bd88466d0e6a30c8dd78bad3b5b8a Mon Sep 17 00:00:00 2001 From: Hien To Date: Fri, 6 Dec 2024 13:42:08 +0700 Subject: [PATCH 32/70] feat: add codesign for macos --- .github/workflows/python-package.yml | 37 +++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 646de4b17..e533ae7cf 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -133,4 +133,39 @@ jobs: uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} - path: ${{env.PYTHON_FOLDER}} \ No newline at end of file + path: ${{env.PYTHON_FOLDER}} + + codesign: + runs-on: macos-latest + needs: build-and-test + steps: + - name: checkout + uses: actions/checkout@v3 + - uses: apple-actions/import-codesign-certs@v2 + continue-on-error: true + with: + p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} + p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-mac-amd64 + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-mac-amd64 + + - run: | + find "${{env.MODEL_NAME}}-mac-amd64" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; + find "${{env.MODEL_NAME}}-mac-arm64" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-mac-amd64 + path: ${{env.MODEL_NAME}}-mac-amd64 + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-mac-arm64 + path: ${{env.MODEL_NAME}}-mac-arm64 From 00b0252572c8e35fcb9f5c33f2982a6015d27283 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Fri, 6 Dec 2024 14:32:44 +0700 Subject: [PATCH 33/70] Test CI window --- .github/workflows/python-package.yml | 118 +++++++++++++++------------ 1 file changed, 66 insertions(+), 52 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 646de4b17..bfc8b8ae4 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -25,18 +25,18 @@ jobs: fail-fast: false matrix: include: - - os: "linux" + # - os: "linux" + # name: "amd64" + # runs-on: "ubuntu-20-04-cuda-12-0" + # - os: "mac" + # name: "amd64" + # runs-on: "macos-selfhosted-12" + # - os: "mac" + # name: "arm64" + # runs-on: "macos-silicon" + - os: "windows" name: "amd64" - runs-on: "ubuntu-20-04-cuda-12-0" - - os: "mac" - name: "amd64" - runs-on: "macos-selfhosted-12" - - os: "mac" - name: "arm64" - runs-on: "macos-silicon" - # - os: "windows" - # name: "amd64" - # runs-on: "windows-cuda-12-0" + runs-on: "windows-cuda-12-0" steps: - name: Clone id: checkout @@ -68,45 +68,48 @@ jobs: # bash miniconda.sh -b -p $HOME/miniconda # echo "$HOME/miniconda/bin" >> $GITHUB_PATH - # - name: Install Miniconda on Windows - # if: runner.os == 'Windows' - # shell: pwsh - # run: | - # $minicondaUrl = 'https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe' - # Invoke-WebRequest -Uri $minicondaUrl -OutFile miniconda.exe - # Start-Process -FilePath miniconda.exe -ArgumentList '/InstallationType=JustMe', '/AddToPath=1', '/RegisterPython=0', '/S', ('/D=Miniconda3') -Wait - # echo "$env:USERPROFILE\\Miniconda3" >> $GITHUB_PATH + # - name: Install Miniconda on Windows + # if: runner.os == 'Windows' + # shell: pwsh + # run: | + # $minicondaUrl = 'https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe' + # $installerPath = "$env:USERPROFILE\\miniconda.exe" + # Invoke-WebRequest -Uri $minicondaUrl -OutFile $installerPath + # Start-Process -FilePath $installerPath -ArgumentList '/InstallationType=JustMe', '/AddToPath=1', '/RegisterPython=0', '/S', ('/D=' + $env:USERPROFILE + '\\Miniconda3') -Wait + # echo "$env:USERPROFILE\\Miniconda3" >> $GITHUB_PATH + - name: Install dependencies Windows if: runner.os == 'windows' + shell: pwsh run: | - Miniconda\_conda.exe init + ${{env.USERPROFILE}}\\Miniconda3\\Scripts\\conda.exe init conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - - name: Install dependencies Linux - if: runner.os == 'linux' - run: | - export PATH=$PATH:$HOME/miniconda/bin/ - conda init - conda create -y -n ${{env.MODEL_NAME}} python=3.11 - source $HOME/miniconda/bin/activate base - conda activate ${{env.MODEL_NAME}} - python -m pip install --upgrade pip - python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + # - name: Install dependencies Linux + # if: runner.os == 'linux' + # run: | + # export PATH=$PATH:$HOME/miniconda/bin/ + # conda init + # conda create -y -n ${{env.MODEL_NAME}} python=3.11 + # source $HOME/miniconda/bin/activate base + # conda activate ${{env.MODEL_NAME}} + # python -m pip install --upgrade pip + # python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - - name: Install dependencies Mac - if: runner.os == 'macOS' - run: | - export PATH=$PATH:$HOME/miniconda/bin/ - conda init - conda create -y -n ${{env.MODEL_NAME}} python=3.11 - source $HOME/miniconda/bin/activate base - conda activate ${{env.MODEL_NAME}} - python -m pip install --upgrade pip - python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt + # - name: Install dependencies Mac + # if: runner.os == 'macOS' + # run: | + # export PATH=$PATH:$HOME/miniconda/bin/ + # conda init + # conda create -y -n ${{env.MODEL_NAME}} python=3.11 + # source $HOME/miniconda/bin/activate base + # conda activate ${{env.MODEL_NAME}} + # python -m pip install --upgrade pip + # python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt - name: prepare python package windows if : runner.os == 'windows' @@ -115,21 +118,32 @@ jobs: conda activate ${{env.MODEL_NAME}} for /f "delims=" %%a in ('where python') do set "PYTHON_PATH=%%a" echo %PYTHON_PATH% + for %%i in ("%PYTHON_PATH%") do set "PYTHON_FOLDER=%%~dpi" + set "PYTHON_FOLDER=%PYTHON_FOLDER:~0,-1%" + echo PYTHON_FOLDER=%PYTHON_FOLDER% >> %GITHUB_ENV% + move "%PYTHON_FOLDER%\python*.*" "%PYTHON_FOLDER%\Scripts\" - - name: prepare python package unix - if : runner.os != 'windows' - run: | - export PATH=$PATH:$HOME/miniconda/bin/ - source $HOME/miniconda/bin/activate base - conda activate ${{env.MODEL_NAME}} - PYTHON_PATH=$(which python) - echo $PYTHON_PATH - PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) - echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV - echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" + # - name: prepare python package unix + # if : runner.os != 'windows' + # run: | + # export PATH=$PATH:$HOME/miniconda/bin/ + # source $HOME/miniconda/bin/activate base + # conda activate ${{env.MODEL_NAME}} + # PYTHON_PATH=$(which python) + # echo $PYTHON_PATH + # PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) + # echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV + # echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" + # - name: Upload Artifact + # if : runner.os == 'macOS' || runner.os == 'linux' + # uses: actions/upload-artifact@v4 + # with: + # name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} + # path: ${{env.PYTHON_FOLDER}} + - name: Upload Artifact - if : runner.os == 'macOS' || runner.os == 'linux' + if : runner.os == 'windows' uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} From 0a0b8b42b75a5cf6612e49bc07e866e7149566db Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Fri, 6 Dec 2024 14:35:16 +0700 Subject: [PATCH 34/70] Test CI window --- .github/workflows/python-package.yml | 66 ++++++++++++++-------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b44588486..3f79e5640 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -82,7 +82,7 @@ jobs: if: runner.os == 'windows' shell: pwsh run: | - ${{env.USERPROFILE}}\\Miniconda3\\Scripts\\conda.exe init + $env:USERPROFILE\\Miniconda3\\Scripts\\conda.exe init conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda activate ${{env.MODEL_NAME}} @@ -149,37 +149,37 @@ jobs: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} path: ${{env.PYTHON_FOLDER}} - codesign: - runs-on: macos-latest - needs: build-and-test - steps: - - name: checkout - uses: actions/checkout@v3 - - uses: apple-actions/import-codesign-certs@v2 - continue-on-error: true - with: - p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} - p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - - name: Download Artifact - uses: actions/download-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-mac-amd64 - - name: Download Artifact - uses: actions/download-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-mac-amd64 + # codesign: + # runs-on: macos-latest + # needs: build-and-test + # steps: + # - name: checkout + # uses: actions/checkout@v3 + # - uses: apple-actions/import-codesign-certs@v2 + # continue-on-error: true + # with: + # p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} + # p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} + # - name: Download Artifact + # uses: actions/download-artifact@v4 + # with: + # name: ${{env.MODEL_NAME}}-mac-amd64 + # - name: Download Artifact + # uses: actions/download-artifact@v4 + # with: + # name: ${{env.MODEL_NAME}}-mac-amd64 - - run: | - find "${{env.MODEL_NAME}}-mac-amd64" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; - find "${{env.MODEL_NAME}}-mac-arm64" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; + # - run: | + # find "${{env.MODEL_NAME}}-mac-amd64" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; + # find "${{env.MODEL_NAME}}-mac-arm64" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-mac-amd64 - path: ${{env.MODEL_NAME}}-mac-amd64 - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-mac-arm64 - path: ${{env.MODEL_NAME}}-mac-arm64 + # - name: Upload Artifact + # uses: actions/upload-artifact@v4 + # with: + # name: ${{env.MODEL_NAME}}-mac-amd64 + # path: ${{env.MODEL_NAME}}-mac-amd64 + # - name: Upload Artifact + # uses: actions/upload-artifact@v4 + # with: + # name: ${{env.MODEL_NAME}}-mac-arm64 + # path: ${{env.MODEL_NAME}}-mac-arm64 From 507ec604e63c35966d77e1ae998740f7266af0f2 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Fri, 6 Dec 2024 14:36:31 +0700 Subject: [PATCH 35/70] Test CI window --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 3f79e5640..25d12b98b 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -82,7 +82,7 @@ jobs: if: runner.os == 'windows' shell: pwsh run: | - $env:USERPROFILE\\Miniconda3\\Scripts\\conda.exe init + conda create -y -n ${{env.MODEL_NAME}} python=3.11 conda activate ${{env.MODEL_NAME}} From df5c2e3c23439ee7d4eb46cb82ca151080629401 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Fri, 6 Dec 2024 14:46:44 +0700 Subject: [PATCH 36/70] Test CI window --- .github/workflows/python-package.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 25d12b98b..3e935dda0 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -113,15 +113,17 @@ jobs: - name: prepare python package windows if : runner.os == 'windows' - shell: cmd + shell: pwsh run: | conda activate ${{env.MODEL_NAME}} - for /f "delims=" %%a in ('where python') do set "PYTHON_PATH=%%a" - echo %PYTHON_PATH% - for %%i in ("%PYTHON_PATH%") do set "PYTHON_FOLDER=%%~dpi" - set "PYTHON_FOLDER=%PYTHON_FOLDER:~0,-1%" - echo PYTHON_FOLDER=%PYTHON_FOLDER% >> %GITHUB_ENV% - move "%PYTHON_FOLDER%\python*.*" "%PYTHON_FOLDER%\Scripts\" + $pythonPath = where.exe python + echo "Python path (where.exe): $pythonPath" + + + $pythonFolder = Split-Path -Path "$pythonPath" -Parent + echo "PYTHON_FOLDER=$pythonFolder" >> $env:GITHUB_ENV + + Move-Item -Path "$pythonFolder\python*.*" -Destination "$pythonFolder\Scripts\" -Force # - name: prepare python package unix # if : runner.os != 'windows' From 237e4254e39e0cf35b1c1733213d69af5df52fb5 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Sat, 7 Dec 2024 00:14:30 +0700 Subject: [PATCH 37/70] test CI windows --- .github/workflows/python-package.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 3e935dda0..7f791b8af 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -45,6 +45,11 @@ jobs: submodules: recursive repository: janhq/models ref: "feat/ci-python-models" + - name: use python + if : runner.os == 'Windows' + uses: actions/setup-python@v5 + with: + python-version: "3.10" # - name: Install Miniconda on Linux # if: runner.os == 'Linux' @@ -83,11 +88,8 @@ jobs: shell: pwsh run: | - conda create -y -n ${{env.MODEL_NAME}} python=3.11 - - conda activate ${{env.MODEL_NAME}} - python -m pip install --upgrade pip - python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + python3 -m pip install --upgrade pip + python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt # - name: Install dependencies Linux # if: runner.os == 'linux' @@ -115,7 +117,6 @@ jobs: if : runner.os == 'windows' shell: pwsh run: | - conda activate ${{env.MODEL_NAME}} $pythonPath = where.exe python echo "Python path (where.exe): $pythonPath" From 48440525f4a7dde9ad259c21e27a239858a483d2 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Sat, 7 Dec 2024 00:28:15 +0700 Subject: [PATCH 38/70] test CI windows --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 7f791b8af..30b1b3cfd 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -49,7 +49,7 @@ jobs: if : runner.os == 'Windows' uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.11" # - name: Install Miniconda on Linux # if: runner.os == 'Linux' From 4927ce23369ba52b6b0cf337e1a1a6757926729a Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Sat, 7 Dec 2024 01:18:18 +0700 Subject: [PATCH 39/70] test CI windows include hidden file --- .github/workflows/python-package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 30b1b3cfd..09367a3d3 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -151,6 +151,7 @@ jobs: with: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} path: ${{env.PYTHON_FOLDER}} + include-hidden-files: true # codesign: # runs-on: macos-latest From 597de375d33fd2d9ce8d30d032ca06b830716e6a Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Sat, 7 Dec 2024 01:20:16 +0700 Subject: [PATCH 40/70] test CI macos include hidden file --- .github/workflows/python-package.yml | 224 +++++++++++---------------- 1 file changed, 92 insertions(+), 132 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 09367a3d3..3721d7510 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -1,8 +1,9 @@ + name: Build and Package Python Library on: push: - branches: [ feat/python-package-ci ] + branches: [ feat/codesign-python-package ] workflow_dispatch: inputs: model_dir: @@ -28,15 +29,15 @@ jobs: # - os: "linux" # name: "amd64" # runs-on: "ubuntu-20-04-cuda-12-0" - # - os: "mac" - # name: "amd64" - # runs-on: "macos-selfhosted-12" - # - os: "mac" - # name: "arm64" - # runs-on: "macos-silicon" - - os: "windows" + - os: "mac" name: "amd64" - runs-on: "windows-cuda-12-0" + runs-on: "macos-selfhosted-12" + - os: "mac" + name: "arm64" + runs-on: "macos-silicon" + # - os: "windows" + # name: "amd64" + # runs-on: "windows-cuda-12-0" steps: - name: Clone id: checkout @@ -45,145 +46,104 @@ jobs: submodules: recursive repository: janhq/models ref: "feat/ci-python-models" - - name: use python - if : runner.os == 'Windows' - uses: actions/setup-python@v5 - with: - python-version: "3.11" - # - name: Install Miniconda on Linux - # if: runner.os == 'Linux' - # run: | - # wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh - # bash miniconda.sh -b -p $HOME/miniconda - # echo "$HOME/miniconda/bin" >> $GITHUB_PATH - - # - name: Install Miniconda on macOS - # if: runner.os == 'macOS' - # run: | - # if [ "$(uname -m)" = "arm64" ]; then - # echo "Running on macOS ARM" - # MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh" - # else - # echo "Running on macOS Intel" - # MINICONDA_URL="https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" - # fi - # echo "Downloading Miniconda from $MINICONDA_URL" - # curl -L $MINICONDA_URL -o miniconda.sh - # bash miniconda.sh -b -p $HOME/miniconda - # echo "$HOME/miniconda/bin" >> $GITHUB_PATH - - # - name: Install Miniconda on Windows - # if: runner.os == 'Windows' - # shell: pwsh - # run: | - # $minicondaUrl = 'https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe' - # $installerPath = "$env:USERPROFILE\\miniconda.exe" - # Invoke-WebRequest -Uri $minicondaUrl -OutFile $installerPath - # Start-Process -FilePath $installerPath -ArgumentList '/InstallationType=JustMe', '/AddToPath=1', '/RegisterPython=0', '/S', ('/D=' + $env:USERPROFILE + '\\Miniconda3') -Wait - # echo "$env:USERPROFILE\\Miniconda3" >> $GITHUB_PATH + - uses: conda-incubator/setup-miniconda@v3 + with: + auto-update-conda: true + python-version: 3.11 - name: Install dependencies Windows if: runner.os == 'windows' - shell: pwsh run: | - - python3 -m pip install --upgrade pip - python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - - # - name: Install dependencies Linux - # if: runner.os == 'linux' - # run: | - # export PATH=$PATH:$HOME/miniconda/bin/ - # conda init - # conda create -y -n ${{env.MODEL_NAME}} python=3.11 - # source $HOME/miniconda/bin/activate base - # conda activate ${{env.MODEL_NAME}} - # python -m pip install --upgrade pip - # python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + conda create -y -n ${{env.MODEL_NAME}} python=3.11 + source $HOME/miniconda/bin/activate base + conda init + conda activate ${{env.MODEL_NAME}} + python -m pip install --upgrade pip + python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + - name: Install dependencies Linux + if: runner.os == 'linux' + run: | + conda create -y -n ${{env.MODEL_NAME}} python=3.11 + source $HOME/miniconda/bin/activate base + conda init + conda activate ${{env.MODEL_NAME}} + python -m pip install --upgrade pip + python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - # - name: Install dependencies Mac - # if: runner.os == 'macOS' - # run: | - # export PATH=$PATH:$HOME/miniconda/bin/ - # conda init - # conda create -y -n ${{env.MODEL_NAME}} python=3.11 - # source $HOME/miniconda/bin/activate base - # conda activate ${{env.MODEL_NAME}} - # python -m pip install --upgrade pip - # python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt - + - name: Install dependencies Mac + if: runner.os == 'macOS' + run: | + conda create -y -n ${{env.MODEL_NAME}} python=3.11 + source $HOME/miniconda/bin/activate base + conda init + conda activate ${{env.MODEL_NAME}} + python -m pip install --upgrade pip + python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt - name: prepare python package windows if : runner.os == 'windows' - shell: pwsh + shell: cmd run: | - $pythonPath = where.exe python - echo "Python path (where.exe): $pythonPath" - - - $pythonFolder = Split-Path -Path "$pythonPath" -Parent - echo "PYTHON_FOLDER=$pythonFolder" >> $env:GITHUB_ENV - - Move-Item -Path "$pythonFolder\python*.*" -Destination "$pythonFolder\Scripts\" -Force + source $HOME/miniconda/bin/activate base + conda init + conda activate ${{env.MODEL_NAME}} + for /f "delims=" %%a in ('where python') do set "PYTHON_PATH=%%a" + echo %PYTHON_PATH% - # - name: prepare python package unix - # if : runner.os != 'windows' - # run: | - # export PATH=$PATH:$HOME/miniconda/bin/ - # source $HOME/miniconda/bin/activate base - # conda activate ${{env.MODEL_NAME}} - # PYTHON_PATH=$(which python) - # echo $PYTHON_PATH - # PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) - # echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV - # echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - - # - name: Upload Artifact - # if : runner.os == 'macOS' || runner.os == 'linux' - # uses: actions/upload-artifact@v4 - # with: - # name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} - # path: ${{env.PYTHON_FOLDER}} - + - name: prepare python package unix + if : runner.os != 'windows' + run: | + source $HOME/miniconda/bin/activate base + conda init + conda activate ${{env.MODEL_NAME}} + PYTHON_PATH=$(which python) + echo $PYTHON_PATH + PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) + echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV + echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - name: Upload Artifact - if : runner.os == 'windows' + if : runner.os == 'macOS' || runner.os == 'linux' uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} path: ${{env.PYTHON_FOLDER}} include-hidden-files: true - # codesign: - # runs-on: macos-latest - # needs: build-and-test - # steps: - # - name: checkout - # uses: actions/checkout@v3 - # - uses: apple-actions/import-codesign-certs@v2 - # continue-on-error: true - # with: - # p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} - # p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - # - name: Download Artifact - # uses: actions/download-artifact@v4 - # with: - # name: ${{env.MODEL_NAME}}-mac-amd64 - # - name: Download Artifact - # uses: actions/download-artifact@v4 - # with: - # name: ${{env.MODEL_NAME}}-mac-amd64 + codesign: + runs-on: macos-latest + needs: build-and-test + steps: + - name: checkout + uses: actions/checkout@v3 + - uses: apple-actions/import-codesign-certs@v2 + continue-on-error: true + with: + p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} + p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-mac-amd64 + path: ${{env.MODEL_NAME}}-mac-amd64 + - name: Download Artifact + uses: actions/download-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-mac-arm64 + path: ${{env.MODEL_NAME}}-mac-arm64 - # - run: | - # find "${{env.MODEL_NAME}}-mac-amd64" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; - # find "${{env.MODEL_NAME}}-mac-arm64" \( -type f -perm +111 -o -name "*.node" \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; + - run: | + find "${{env.MODEL_NAME}}-mac-amd64" \( -type f -perm +111 \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; + find "${{env.MODEL_NAME}}-mac-arm64" \( -type f -perm +111 \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; - # - name: Upload Artifact - # uses: actions/upload-artifact@v4 - # with: - # name: ${{env.MODEL_NAME}}-mac-amd64 - # path: ${{env.MODEL_NAME}}-mac-amd64 - # - name: Upload Artifact - # uses: actions/upload-artifact@v4 - # with: - # name: ${{env.MODEL_NAME}}-mac-arm64 - # path: ${{env.MODEL_NAME}}-mac-arm64 + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-mac-amd64-signed + path: ${{env.MODEL_NAME}}-mac-amd64 + include-hidden-files: true + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{env.MODEL_NAME}}-mac-arm64-signed + path: ${{env.MODEL_NAME}}-mac-arm64 + include-hidden-files: true \ No newline at end of file From 7231a701f16fe2609c72b2f6db290155c22dc988 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Sat, 7 Dec 2024 01:37:05 +0700 Subject: [PATCH 41/70] test CI macos include hidden file --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 3721d7510..e8759ef0f 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -146,4 +146,4 @@ jobs: with: name: ${{env.MODEL_NAME}}-mac-arm64-signed path: ${{env.MODEL_NAME}}-mac-arm64 - include-hidden-files: true \ No newline at end of file + include-hidden-files: true \ No newline at end of file From 798b582ad7063605e61d7f7623ed78ca605b9d0b Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Sat, 7 Dec 2024 01:38:28 +0700 Subject: [PATCH 42/70] test CI macos include hidden file --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index e8759ef0f..12587b2ae 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -3,7 +3,7 @@ name: Build and Package Python Library on: push: - branches: [ feat/codesign-python-package ] + branches: [ feat/python-package-ci ] workflow_dispatch: inputs: model_dir: @@ -146,4 +146,4 @@ jobs: with: name: ${{env.MODEL_NAME}}-mac-arm64-signed path: ${{env.MODEL_NAME}}-mac-arm64 - include-hidden-files: true \ No newline at end of file + include-hidden-files: true \ No newline at end of file From d2400b1dcdf949dd86274e224af27afa22a68b95 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 9 Dec 2024 09:02:59 +0700 Subject: [PATCH 43/70] chore: add package pipeline for 4 os --- .github/workflows/python-package.yml | 71 ++++++++++++++++++---------- 1 file changed, 46 insertions(+), 25 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 12587b2ae..b145cd9d5 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -1,4 +1,3 @@ - name: Build and Package Python Library on: @@ -12,11 +11,21 @@ on: model_name: description: "name of model to be release" required: true + repo_name: + description: "name of repo to be checked out" + required: true + branch_name: + description: "name of branch to be checked out" + required: true + default: main + env: MODEL_DIR: models/whispervq # ${{ inputs.model_dir }} MODEL_NAME: whispervq # ${{ inputs.model_name }} + REPO_NAME: janhq/models # ${{ inputs.model_name }} + BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} jobs: build-and-test: @@ -26,41 +35,45 @@ jobs: fail-fast: false matrix: include: - # - os: "linux" - # name: "amd64" - # runs-on: "ubuntu-20-04-cuda-12-0" + - os: "linux" + name: "amd64" + runs-on: "ubuntu-20-04-cuda-12-0" - os: "mac" name: "amd64" runs-on: "macos-selfhosted-12" - os: "mac" name: "arm64" runs-on: "macos-silicon" - # - os: "windows" - # name: "amd64" - # runs-on: "windows-cuda-12-0" + - os: "windows" + name: "amd64" + runs-on: "windows-cuda-12-0" steps: - name: Clone id: checkout uses: actions/checkout@v3 with: submodules: recursive - repository: janhq/models - ref: "feat/ci-python-models" - + repository: ${{env.REPO_NAME}} + ref: ${{env.BRANCH_NAME}} - uses: conda-incubator/setup-miniconda@v3 + if: runner.os != 'windows' with: auto-update-conda: true python-version: 3.11 + - name: use python + if : runner.os == 'windows' + uses: actions/setup-python@v5 + with: + python-version: "3.11" - name: Install dependencies Windows if: runner.os == 'windows' + shell: pwsh run: | - conda create -y -n ${{env.MODEL_NAME}} python=3.11 - source $HOME/miniconda/bin/activate base - conda init - conda activate ${{env.MODEL_NAME}} - python -m pip install --upgrade pip - python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + + python3 -m pip install --upgrade pip + python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + - name: Install dependencies Linux if: runner.os == 'linux' run: | @@ -70,7 +83,7 @@ jobs: conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - + - name: Install dependencies Mac if: runner.os == 'macOS' run: | @@ -80,15 +93,19 @@ jobs: conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt + - name: prepare python package windows if : runner.os == 'windows' - shell: cmd + shell: pwsh run: | - source $HOME/miniconda/bin/activate base - conda init - conda activate ${{env.MODEL_NAME}} - for /f "delims=" %%a in ('where python') do set "PYTHON_PATH=%%a" - echo %PYTHON_PATH% + $pythonPath = where.exe python + echo "Python path (where.exe): $pythonPath" + + + $pythonFolder = Split-Path -Path "$pythonPath" -Parent + echo "PYTHON_FOLDER=$pythonFolder" >> $env:GITHUB_ENV + + Move-Item -Path "$pythonFolder\python*.*" -Destination "$pythonFolder\Scripts\" -Force - name: prepare python package unix if : runner.os != 'windows' @@ -101,13 +118,15 @@ jobs: PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" + - name: Upload Artifact - if : runner.os == 'macOS' || runner.os == 'linux' + #if : runner.os == 'windows' || runner.os == 'linux' uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} path: ${{env.PYTHON_FOLDER}} include-hidden-files: true + compression-level: 0 codesign: runs-on: macos-latest @@ -141,9 +160,11 @@ jobs: name: ${{env.MODEL_NAME}}-mac-amd64-signed path: ${{env.MODEL_NAME}}-mac-amd64 include-hidden-files: true + compression-level: 0 - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-mac-arm64-signed path: ${{env.MODEL_NAME}}-mac-arm64 - include-hidden-files: true \ No newline at end of file + include-hidden-files: true + compression-level: 0 \ No newline at end of file From 750110983c0eb1dfff676d8b2a4593174f145fb1 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 9 Dec 2024 09:12:20 +0700 Subject: [PATCH 44/70] chore: add package pipeline for 4 os change compression level --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b145cd9d5..1027596d4 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -105,7 +105,7 @@ jobs: $pythonFolder = Split-Path -Path "$pythonPath" -Parent echo "PYTHON_FOLDER=$pythonFolder" >> $env:GITHUB_ENV - Move-Item -Path "$pythonFolder\python*.*" -Destination "$pythonFolder\Scripts\" -Force + Copy-Item -Path "$pythonFolder\python*.*" -Destination "$pythonFolder\Scripts\" -Force -Recurse - name: prepare python package unix if : runner.os != 'windows' @@ -126,7 +126,7 @@ jobs: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} path: ${{env.PYTHON_FOLDER}} include-hidden-files: true - compression-level: 0 + compression-level: 9 codesign: runs-on: macos-latest From 9f27ae484aa694b1c4c08c9bdc9ab51d811c7423 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 9 Dec 2024 09:36:45 +0700 Subject: [PATCH 45/70] chore: add package pipeline for 4 os optimize linux size --- .github/workflows/python-package.yml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 1027596d4..5cc9c1ec2 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -105,10 +105,10 @@ jobs: $pythonFolder = Split-Path -Path "$pythonPath" -Parent echo "PYTHON_FOLDER=$pythonFolder" >> $env:GITHUB_ENV - Copy-Item -Path "$pythonFolder\python*.*" -Destination "$pythonFolder\Scripts\" -Force -Recurse + Copy-Item -Path "$pythonFolder\python*.*" -Destination "$pythonFolder\Scripts\" -Force - - name: prepare python package unix - if : runner.os != 'windows' + - name: prepare python package macos + if : runner.os == 'macOs' run: | source $HOME/miniconda/bin/activate base conda init @@ -118,6 +118,18 @@ jobs: PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" + - name: prepare python package linux + if : runner.os == 'linux' + run: | + source $HOME/miniconda/bin/activate base + conda init + conda activate ${{env.MODEL_NAME}} + PYTHON_PATH=$(which python) + echo $PYTHON_PATH + PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) + rm -rf PYTHON_FOLDER/lib/python3.1 + echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV + echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - name: Upload Artifact #if : runner.os == 'windows' || runner.os == 'linux' From 66a9188a92f669f1639ad8e3cc040efbe54ea8ac Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 9 Dec 2024 10:15:58 +0700 Subject: [PATCH 46/70] chore: add package pipeline for 4 os optimize linux size and fix windows --- .github/workflows/python-package.yml | 29 +++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 5cc9c1ec2..74b1cab62 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -38,12 +38,12 @@ jobs: - os: "linux" name: "amd64" runs-on: "ubuntu-20-04-cuda-12-0" - - os: "mac" - name: "amd64" - runs-on: "macos-selfhosted-12" - - os: "mac" - name: "arm64" - runs-on: "macos-silicon" + # - os: "mac" + # name: "amd64" + # runs-on: "macos-selfhosted-12" + # - os: "mac" + # name: "arm64" + # runs-on: "macos-silicon" - os: "windows" name: "amd64" runs-on: "windows-cuda-12-0" @@ -98,14 +98,12 @@ jobs: if : runner.os == 'windows' shell: pwsh run: | - $pythonPath = where.exe python + $pythonPath = where.exe python | echo "Python path (where.exe): $pythonPath" - - $pythonFolder = Split-Path -Path "$pythonPath" -Parent echo "PYTHON_FOLDER=$pythonFolder" >> $env:GITHUB_ENV - Copy-Item -Path "$pythonFolder\python*.*" -Destination "$pythonFolder\Scripts\" -Force + copy "$pythonFolder\python*.*" "$pythonFolder\Scripts\" - name: prepare python package macos if : runner.os == 'macOs' @@ -127,7 +125,7 @@ jobs: PYTHON_PATH=$(which python) echo $PYTHON_PATH PYTHON_FOLDER=$(dirname $(dirname "$PYTHON_PATH")) - rm -rf PYTHON_FOLDER/lib/python3.1 + rm -rf $PYTHON_FOLDER/lib/python3.1 echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" @@ -140,6 +138,11 @@ jobs: include-hidden-files: true compression-level: 9 + - name: Post Upload windows + if : runner.os == 'windows' + run: | + rm ${{env.PYTHON_FOLDER}}/Scripts/python*.* + codesign: runs-on: macos-latest needs: build-and-test @@ -172,11 +175,11 @@ jobs: name: ${{env.MODEL_NAME}}-mac-amd64-signed path: ${{env.MODEL_NAME}}-mac-amd64 include-hidden-files: true - compression-level: 0 + compression-level: 9 - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-mac-arm64-signed path: ${{env.MODEL_NAME}}-mac-arm64 include-hidden-files: true - compression-level: 0 \ No newline at end of file + compression-level: 9 \ No newline at end of file From 6113040519954746d8b7e98e24042733f8789b00 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 9 Dec 2024 10:17:52 +0700 Subject: [PATCH 47/70] chore: add package pipeline fix windows --- .github/workflows/python-package.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 74b1cab62..b26ae74a1 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -35,9 +35,9 @@ jobs: fail-fast: false matrix: include: - - os: "linux" - name: "amd64" - runs-on: "ubuntu-20-04-cuda-12-0" + # - os: "linux" + # name: "amd64" + # runs-on: "ubuntu-20-04-cuda-12-0" # - os: "mac" # name: "amd64" # runs-on: "macos-selfhosted-12" @@ -98,7 +98,7 @@ jobs: if : runner.os == 'windows' shell: pwsh run: | - $pythonPath = where.exe python | + $pythonPath = where.exe python echo "Python path (where.exe): $pythonPath" $pythonFolder = Split-Path -Path "$pythonPath" -Parent echo "PYTHON_FOLDER=$pythonFolder" >> $env:GITHUB_ENV From 7ca87d0f7b6e936808490e145267159d07af8c90 Mon Sep 17 00:00:00 2001 From: hiento09 <136591877+hiento09@users.noreply.github.com> Date: Tue, 10 Dec 2024 22:03:16 +0700 Subject: [PATCH 48/70] Feat python package codesign (#1780) * feat: add codesign for macos * feat: add codesign for macos * fix: notary python zipped folder --------- Co-authored-by: Hien To --- .github/workflows/python-package.yml | 150 +++++++++++++++++---------- 1 file changed, 96 insertions(+), 54 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b26ae74a1..f0d7553ce 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -30,7 +30,7 @@ env: jobs: build-and-test: runs-on: ${{ matrix.runs-on }} - timeout-minutes: 60 + timeout-minutes: 360 strategy: fail-fast: false matrix: @@ -38,15 +38,15 @@ jobs: # - os: "linux" # name: "amd64" # runs-on: "ubuntu-20-04-cuda-12-0" - # - os: "mac" - # name: "amd64" - # runs-on: "macos-selfhosted-12" - # - os: "mac" - # name: "arm64" - # runs-on: "macos-silicon" - - os: "windows" + - os: "mac" name: "amd64" - runs-on: "windows-cuda-12-0" + runs-on: "macos-selfhosted-12" + - os: "mac" + name: "arm64" + runs-on: "macos-silicon" + # - os: "windows" + # name: "amd64" + # runs-on: "windows-cuda-12-0" steps: - name: Clone id: checkout @@ -66,13 +66,33 @@ jobs: with: python-version: "3.11" + - name: Get Cer for code signing + if: runner.os == 'macOS' + run: base64 -d <<< "$CODE_SIGN_P12_BASE64" > /tmp/codesign.p12 + shell: bash + env: + CODE_SIGN_P12_BASE64: ${{ secrets.CODE_SIGN_P12_BASE64 }} + + - uses: apple-actions/import-codesign-certs@v2 + continue-on-error: true + if: runner.os == 'macOS' + with: + p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} + p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} + + - name: Get Cer for code signing + if: runner.os == 'macOS' + run: base64 -d <<< "$NOTARIZE_P8_BASE64" > /tmp/notary-key.p8 + shell: bash + env: + NOTARIZE_P8_BASE64: ${{ secrets.NOTARIZE_P8_BASE64 }} + - name: Install dependencies Windows if: runner.os == 'windows' shell: pwsh run: | - - python3 -m pip install --upgrade pip - python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + python3 -m pip install --upgrade pip + python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - name: Install dependencies Linux if: runner.os == 'linux' @@ -102,9 +122,8 @@ jobs: echo "Python path (where.exe): $pythonPath" $pythonFolder = Split-Path -Path "$pythonPath" -Parent echo "PYTHON_FOLDER=$pythonFolder" >> $env:GITHUB_ENV - copy "$pythonFolder\python*.*" "$pythonFolder\Scripts\" - + - name: prepare python package macos if : runner.os == 'macOs' run: | @@ -128,7 +147,65 @@ jobs: rm -rf $PYTHON_FOLDER/lib/python3.1 echo "PYTHON_FOLDER=$PYTHON_FOLDER" >> $GITHUB_ENV echo "github end PYTHON_FOLDER: ${{env.PYTHON_FOLDER}}" - + + - name: create plist file + if: runner.os == 'macOS' + run: | + cat << EOF > /tmp/entitlements.plist + + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + + + com.apple.security.app-sandbox + + com.apple.security.network.client + + com.apple.security.network.server + + com.apple.security.device.audio-input + + com.apple.security.device.microphone + + com.apple.security.device.camera + + com.apple.security.files.user-selected.read-write + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-dyld-environment-variables + + com.apple.security.cs.allow-executable-memory + + + + EOF + + - name: Notary macOS Binary + if: runner.os == 'macOS' + run: | + codesign --force --entitlements="/tmp/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime ${{env.PYTHON_FOLDER}}/bin/python + codesign --force --entitlements="/tmp/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime ${{env.PYTHON_FOLDER}}/bin/python3 + # Code sign all .so files and .dylib files + + find ${{env.PYTHON_FOLDER}} -type f \( -name "*.so" -o -name "*.dylib" \) -exec codesign --force --entitlements="/tmp/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; + + curl -sSfL https://raw.githubusercontent.com/anchore/quill/main/install.sh | sudo sh -s -- -b /usr/local/bin + # Notarize the binary + quill notarize ${{env.PYTHON_FOLDER}}/bin/python + quill notarize ${{env.PYTHON_FOLDER}}/bin/python3 + find ${{env.PYTHON_FOLDER}} -type f \( -name "*.so" -o -name "*.dylib" \) -exec quill notarize {} \; + env: + QUILL_NOTARY_KEY_ID: ${{ secrets.NOTARY_KEY_ID }} + QUILL_NOTARY_ISSUER: ${{ secrets.NOTARY_ISSUER }} + QUILL_NOTARY_KEY: "/tmp/notary-key.p8" + - name: Upload Artifact #if : runner.os == 'windows' || runner.os == 'linux' uses: actions/upload-artifact@v4 @@ -143,43 +220,8 @@ jobs: run: | rm ${{env.PYTHON_FOLDER}}/Scripts/python*.* - codesign: - runs-on: macos-latest - needs: build-and-test - steps: - - name: checkout - uses: actions/checkout@v3 - - uses: apple-actions/import-codesign-certs@v2 + - name: Remove Keychain continue-on-error: true - with: - p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} - p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - - name: Download Artifact - uses: actions/download-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-mac-amd64 - path: ${{env.MODEL_NAME}}-mac-amd64 - - name: Download Artifact - uses: actions/download-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-mac-arm64 - path: ${{env.MODEL_NAME}}-mac-arm64 - - - run: | - find "${{env.MODEL_NAME}}-mac-amd64" \( -type f -perm +111 \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; - find "${{env.MODEL_NAME}}-mac-arm64" \( -type f -perm +111 \) -exec codesign --force --entitlements="./engine/templates/macos/entitlements.plist" -s "${{ secrets.DEVELOPER_ID }}" --options=runtime {} \; - - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-mac-amd64-signed - path: ${{env.MODEL_NAME}}-mac-amd64 - include-hidden-files: true - compression-level: 9 - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-mac-arm64-signed - path: ${{env.MODEL_NAME}}-mac-arm64 - include-hidden-files: true - compression-level: 9 \ No newline at end of file + if: always() && runner.os == 'macOS' + run: | + security delete-keychain signing_temp.keychain \ No newline at end of file From 67d6cc4d5e1f3899a5a3041a547fe7ab8df14e55 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 <35255081+nguyenhoangthuan99@users.noreply.github.com> Date: Thu, 12 Dec 2024 22:12:17 +0700 Subject: [PATCH 49/70] Update python-package.yml --- .github/workflows/python-package.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index f0d7553ce..a03f1b4ab 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -35,18 +35,18 @@ jobs: fail-fast: false matrix: include: - # - os: "linux" - # name: "amd64" - # runs-on: "ubuntu-20-04-cuda-12-0" + - os: "linux" + name: "amd64" + runs-on: "ubuntu-20-04-cuda-12-0" - os: "mac" name: "amd64" runs-on: "macos-selfhosted-12" - os: "mac" name: "arm64" - runs-on: "macos-silicon" - # - os: "windows" - # name: "amd64" - # runs-on: "windows-cuda-12-0" + runs-on: "macos-selfhosted-12-arm64" + - os: "windows" + name: "amd64" + runs-on: "windows-cuda-12-0" steps: - name: Clone id: checkout @@ -224,4 +224,4 @@ jobs: continue-on-error: true if: always() && runner.os == 'macOS' run: | - security delete-keychain signing_temp.keychain \ No newline at end of file + security delete-keychain signing_temp.keychain From 0977085d56ffef107a476750707837ec7c2586ca Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 <35255081+nguyenhoangthuan99@users.noreply.github.com> Date: Thu, 12 Dec 2024 22:19:48 +0700 Subject: [PATCH 50/70] Update python-package.yml --- .github/workflows/python-package.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index a03f1b4ab..9b4f44571 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -98,7 +98,7 @@ jobs: if: runner.os == 'linux' run: | conda create -y -n ${{env.MODEL_NAME}} python=3.11 - source $HOME/miniconda/bin/activate base + source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip @@ -108,7 +108,7 @@ jobs: if: runner.os == 'macOS' run: | conda create -y -n ${{env.MODEL_NAME}} python=3.11 - source $HOME/miniconda/bin/activate base + source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} python -m pip install --upgrade pip @@ -127,7 +127,7 @@ jobs: - name: prepare python package macos if : runner.os == 'macOs' run: | - source $HOME/miniconda/bin/activate base + source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} PYTHON_PATH=$(which python) @@ -138,7 +138,7 @@ jobs: - name: prepare python package linux if : runner.os == 'linux' run: | - source $HOME/miniconda/bin/activate base + source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} PYTHON_PATH=$(which python) From 643dbf6d95213334dd06a35897fa2e8c1babef17 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Wed, 18 Dec 2024 15:47:59 +0700 Subject: [PATCH 51/70] test: package fish speech --- .github/workflows/python-package.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9b4f44571..7d570175d 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -22,8 +22,8 @@ on: env: - MODEL_DIR: models/whispervq # ${{ inputs.model_dir }} - MODEL_NAME: whispervq # ${{ inputs.model_name }} + MODEL_DIR: models/fish-speech # ${{ inputs.model_dir }} + MODEL_NAME: fish-speech # ${{ inputs.model_name }} REPO_NAME: janhq/models # ${{ inputs.model_name }} BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} @@ -91,6 +91,7 @@ jobs: if: runner.os == 'windows' shell: pwsh run: | + python3 -m pip freeze | xargs python3 -m pip uninstall -y python3 -m pip install --upgrade pip python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -101,6 +102,7 @@ jobs: source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} + python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -111,6 +113,7 @@ jobs: source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} + python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From 8191202de0d686c7cfba9fb727c679f2e6c3179f Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Wed, 18 Dec 2024 16:37:06 +0700 Subject: [PATCH 52/70] test: package fish speech --- .github/workflows/python-package.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 7d570175d..9a901b506 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -91,7 +91,6 @@ jobs: if: runner.os == 'windows' shell: pwsh run: | - python3 -m pip freeze | xargs python3 -m pip uninstall -y python3 -m pip install --upgrade pip python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -102,7 +101,6 @@ jobs: source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} - python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -113,7 +111,6 @@ jobs: source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} - python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From 2080c1d9a9ee359bb72279f391a86182d34e6772 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Wed, 18 Dec 2024 18:52:41 +0700 Subject: [PATCH 53/70] test: rerun windows --- .github/workflows/python-package.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9a901b506..f189b46a8 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -35,15 +35,15 @@ jobs: fail-fast: false matrix: include: - - os: "linux" - name: "amd64" - runs-on: "ubuntu-20-04-cuda-12-0" - - os: "mac" - name: "amd64" - runs-on: "macos-selfhosted-12" - - os: "mac" - name: "arm64" - runs-on: "macos-selfhosted-12-arm64" + # - os: "linux" + # name: "amd64" + # runs-on: "ubuntu-20-04-cuda-12-0" + # - os: "mac" + # name: "amd64" + # runs-on: "macos-selfhosted-12" + # - os: "mac" + # name: "arm64" + # runs-on: "macos-selfhosted-12-arm64" - os: "windows" name: "amd64" runs-on: "windows-cuda-12-0" @@ -92,7 +92,7 @@ jobs: shell: pwsh run: | python3 -m pip install --upgrade pip - python3 -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt + python3 -m pip install -I -r ${{env.MODEL_DIR}}/requirements.cuda.txt - name: Install dependencies Linux if: runner.os == 'linux' From 7132058b002ea4ba4157de19e002bdaab10a9811 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 23 Dec 2024 14:59:18 +0700 Subject: [PATCH 54/70] feat: package env for ichigo-wrapper --- .github/workflows/python-package.yml | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index f189b46a8..8110318d8 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -22,8 +22,8 @@ on: env: - MODEL_DIR: models/fish-speech # ${{ inputs.model_dir }} - MODEL_NAME: fish-speech # ${{ inputs.model_name }} + MODEL_DIR: models/ichigo-wrapper # ${{ inputs.model_dir }} + MODEL_NAME: ichigo-wrapper # ${{ inputs.model_name }} REPO_NAME: janhq/models # ${{ inputs.model_name }} BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} @@ -35,15 +35,15 @@ jobs: fail-fast: false matrix: include: - # - os: "linux" - # name: "amd64" - # runs-on: "ubuntu-20-04-cuda-12-0" - # - os: "mac" - # name: "amd64" - # runs-on: "macos-selfhosted-12" - # - os: "mac" - # name: "arm64" - # runs-on: "macos-selfhosted-12-arm64" + - os: "linux" + name: "amd64" + runs-on: "ubuntu-20-04-cuda-12-0" + - os: "mac" + name: "amd64" + runs-on: "macos-selfhosted-12" + - os: "mac" + name: "arm64" + runs-on: "macos-selfhosted-12-arm64" - os: "windows" name: "amd64" runs-on: "windows-cuda-12-0" @@ -91,6 +91,8 @@ jobs: if: runner.os == 'windows' shell: pwsh run: | + python3 -m pip install fastapi + python3 -m pip freeze | % { python3 -m pip uninstall -y $_ } python3 -m pip install --upgrade pip python3 -m pip install -I -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -101,6 +103,8 @@ jobs: source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} + python -m pip install fastapi + python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt @@ -111,6 +115,8 @@ jobs: source $HOME/miniconda3/bin/activate base conda init conda activate ${{env.MODEL_NAME}} + python -m pip install fastapi + python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt From 200aec21f3cfc87ddf301fcf675a978d64d4aecd Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 23 Dec 2024 16:19:13 +0700 Subject: [PATCH 55/70] feat: package env for ichigo-wrapper --- .github/workflows/python-package.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 8110318d8..d9d4ae4cb 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -95,7 +95,7 @@ jobs: python3 -m pip freeze | % { python3 -m pip uninstall -y $_ } python3 -m pip install --upgrade pip python3 -m pip install -I -r ${{env.MODEL_DIR}}/requirements.cuda.txt - + python3 -m pip install dotenv - name: Install dependencies Linux if: runner.os == 'linux' run: | @@ -107,7 +107,7 @@ jobs: python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - + python -m pip install dotenv - name: Install dependencies Mac if: runner.os == 'macOS' run: | @@ -119,6 +119,7 @@ jobs: python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt + python -m pip install dotenv - name: prepare python package windows if : runner.os == 'windows' From f67c13a1c00d3e3bee5609bc7ffca50ad1790813 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 23 Dec 2024 16:25:33 +0700 Subject: [PATCH 56/70] feat: package env for ichigo-wrapper --- .github/workflows/python-package.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index d9d4ae4cb..940cbc043 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -95,7 +95,7 @@ jobs: python3 -m pip freeze | % { python3 -m pip uninstall -y $_ } python3 -m pip install --upgrade pip python3 -m pip install -I -r ${{env.MODEL_DIR}}/requirements.cuda.txt - python3 -m pip install dotenv + python3 -m pip install python-dotenv - name: Install dependencies Linux if: runner.os == 'linux' run: | @@ -107,7 +107,7 @@ jobs: python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.cuda.txt - python -m pip install dotenv + python -m pip install python-dotenv - name: Install dependencies Mac if: runner.os == 'macOS' run: | @@ -119,7 +119,7 @@ jobs: python -m pip freeze | xargs python -m pip uninstall -y python -m pip install --upgrade pip python -m pip install -r ${{env.MODEL_DIR}}/requirements.txt - python -m pip install dotenv + python -m pip install python-dotenv - name: prepare python package windows if : runner.os == 'windows' From 0a931437e6ef49b8a3d9e0645ae17e1af3796e46 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 23 Dec 2024 17:11:54 +0700 Subject: [PATCH 57/70] feat: package env for whispervq --- .github/workflows/python-package.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 940cbc043..89ce69316 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -22,8 +22,8 @@ on: env: - MODEL_DIR: models/ichigo-wrapper # ${{ inputs.model_dir }} - MODEL_NAME: ichigo-wrapper # ${{ inputs.model_name }} + MODEL_DIR: models/whispervq # ${{ inputs.model_dir }} + MODEL_NAME: whispervq # ${{ inputs.model_name }} REPO_NAME: janhq/models # ${{ inputs.model_name }} BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} @@ -38,12 +38,12 @@ jobs: - os: "linux" name: "amd64" runs-on: "ubuntu-20-04-cuda-12-0" - - os: "mac" - name: "amd64" - runs-on: "macos-selfhosted-12" - - os: "mac" - name: "arm64" - runs-on: "macos-selfhosted-12-arm64" + # - os: "mac" + # name: "amd64" + # runs-on: "macos-selfhosted-12" + # - os: "mac" + # name: "arm64" + # runs-on: "macos-selfhosted-12-arm64" - os: "windows" name: "amd64" runs-on: "windows-cuda-12-0" From 56b2f1dcc000daefa6a255b6802f61b92efb6495 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 23 Dec 2024 17:52:46 +0700 Subject: [PATCH 58/70] feat: package env for fish-speech --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 89ce69316..b6fce31ee 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -22,8 +22,8 @@ on: env: - MODEL_DIR: models/whispervq # ${{ inputs.model_dir }} - MODEL_NAME: whispervq # ${{ inputs.model_name }} + MODEL_DIR: models/fish-speech # ${{ inputs.model_dir }} + MODEL_NAME: fish-speech # ${{ inputs.model_name }} REPO_NAME: janhq/models # ${{ inputs.model_name }} BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} From 24d59284bd63e488d9b7a425f80efba083804624 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 23 Dec 2024 19:42:28 +0700 Subject: [PATCH 59/70] feat: package env for fish-speech mac --- .github/workflows/python-package.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b6fce31ee..e29478a2e 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -35,18 +35,18 @@ jobs: fail-fast: false matrix: include: - - os: "linux" - name: "amd64" - runs-on: "ubuntu-20-04-cuda-12-0" - # - os: "mac" + # - os: "linux" # name: "amd64" - # runs-on: "macos-selfhosted-12" - # - os: "mac" - # name: "arm64" - # runs-on: "macos-selfhosted-12-arm64" - - os: "windows" + # runs-on: "ubuntu-20-04-cuda-12-0" + - os: "mac" name: "amd64" - runs-on: "windows-cuda-12-0" + runs-on: "macos-selfhosted-12" + - os: "mac" + name: "arm64" + runs-on: "macos-selfhosted-12-arm64" + # - os: "windows" + # name: "amd64" + # runs-on: "windows-cuda-12-0" steps: - name: Clone id: checkout From 768815c836f4fa63a2926599bb5408158db1d474 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Thu, 26 Dec 2024 08:48:29 +0700 Subject: [PATCH 60/70] Fix: increase timeout for macos notarize --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index e29478a2e..7aa74a9de 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -30,7 +30,7 @@ env: jobs: build-and-test: runs-on: ${{ matrix.runs-on }} - timeout-minutes: 360 + timeout-minutes: 3600 strategy: fail-fast: false matrix: From 23a8ce4086db17d0fad1688a5ee656f3d899782b Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 <35255081+nguyenhoangthuan99@users.noreply.github.com> Date: Thu, 26 Dec 2024 19:57:57 +0700 Subject: [PATCH 61/70] Update python-package.yml --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 7aa74a9de..4bd4f4119 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -22,8 +22,8 @@ on: env: - MODEL_DIR: models/fish-speech # ${{ inputs.model_dir }} - MODEL_NAME: fish-speech # ${{ inputs.model_name }} + MODEL_DIR: models/whispervq # ${{ inputs.model_dir }} + MODEL_NAME: whispervq # ${{ inputs.model_name }} REPO_NAME: janhq/models # ${{ inputs.model_name }} BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} From 216b66aa1b54ce5e174692da36b7daa9f1a00b9f Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 17:16:30 +0700 Subject: [PATCH 62/70] Fix: upload venv to hf instead of github releas --- .github/workflows/python-package.yml | 73 +++++++++++++++++++++++----- 1 file changed, 61 insertions(+), 12 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 7aa74a9de..d75249c65 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -18,14 +18,22 @@ on: description: "name of branch to be checked out" required: true default: main + hf_repo: + description: "name of huggingface repo to be pushed" + required: true + hf_prefix_branch: + description: "prefix of hf branch" + required: false env: - MODEL_DIR: models/fish-speech # ${{ inputs.model_dir }} - MODEL_NAME: fish-speech # ${{ inputs.model_name }} + MODEL_DIR: models/ichigo # ${{ inputs.model_dir }} + MODEL_NAME: ichigo # ${{ inputs.model_name }} REPO_NAME: janhq/models # ${{ inputs.model_name }} BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} + HF_REPO: cortexso/test # ${{ inputs.hf_repo }} + HF_PREFIX_BRANCH: fp16 # ${{ inputs.hf_prefix_branch }} jobs: build-and-test: @@ -35,15 +43,15 @@ jobs: fail-fast: false matrix: include: - # - os: "linux" - # name: "amd64" - # runs-on: "ubuntu-20-04-cuda-12-0" - - os: "mac" + - os: "linux" name: "amd64" - runs-on: "macos-selfhosted-12" - - os: "mac" - name: "arm64" - runs-on: "macos-selfhosted-12-arm64" + runs-on: "ubuntu-20-04-cuda-12-0" + # - os: "mac" + # name: "amd64" + # runs-on: "macos-selfhosted-12" + # - os: "mac" + # name: "arm64" + # runs-on: "macos-selfhosted-12-arm64" # - os: "windows" # name: "amd64" # runs-on: "windows-cuda-12-0" @@ -213,8 +221,48 @@ jobs: QUILL_NOTARY_ISSUER: ${{ secrets.NOTARY_ISSUER }} QUILL_NOTARY_KEY: "/tmp/notary-key.p8" - - name: Upload Artifact - #if : runner.os == 'windows' || runner.os == 'linux' + # - name: Upload Artifact + # #if : runner.os == 'windows' || runner.os == 'linux' + # uses: actions/upload-artifact@v4 + # with: + # name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} + # path: ${{env.PYTHON_FOLDER}} + # include-hidden-files: true + # compression-level: 9 + + - name: Upload Artifact MacOS + if : runner.os == 'macOS' + run: | + brew install zip + cd ${{env.PYTHON_FOLDER}} && zip -r venv.zip * + conda create -y -n hf-upload python=3.11 + source $HOME/miniconda3/bin/activate base + conda init + conda activate hf-upload + python -m pip install hf-transfer huggingface_hub + huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential + huggingface-cli upload ${{env.HF_REPO}} venv.zip . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }}" + rm -rf venv.zip + huggingface-cli logout + + - name: Upload Artifact Linux + if : runner.os == 'linux' + run: | + sudo apt-get install -y zip + cd ${{env.PYTHON_FOLDER}} && zip -r venv.zip * + conda create -y -n hf-upload python=3.11 + source $HOME/miniconda3/bin/activate base + conda init + conda activate hf-upload + python -m pip install hf-transfer huggingface_hub + huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential + huggingface-cli upload ${{env.HF_REPO}} venv.zip . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }}" + rm -rf venv.zip + huggingface-cli logout + + + - name: Upload Artifact Windows + if : runner.os == 'windows' uses: actions/upload-artifact@v4 with: name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} @@ -222,6 +270,7 @@ jobs: include-hidden-files: true compression-level: 9 + - name: Post Upload windows if : runner.os == 'windows' run: | From fe09248c88d7df1ec2ac2b769f8b3c3e3d9f48c9 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 17:21:35 +0700 Subject: [PATCH 63/70] Update: test run new CI for package python --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index d75249c65..5126cb931 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -28,7 +28,7 @@ on: env: - MODEL_DIR: models/ichigo # ${{ inputs.model_dir }} + MODEL_DIR: models/ichigo-wrapper # ${{ inputs.model_dir }} MODEL_NAME: ichigo # ${{ inputs.model_name }} REPO_NAME: janhq/models # ${{ inputs.model_name }} BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} From 372425e70a06f0e9d8b46158e1a28d7c37e2e348 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 17:43:44 +0700 Subject: [PATCH 64/70] Update: test run new CI for package python --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 5126cb931..0afc12faf 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -241,7 +241,7 @@ jobs: conda activate hf-upload python -m pip install hf-transfer huggingface_hub huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential - huggingface-cli upload ${{env.HF_REPO}} venv.zip . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }}" + huggingface-cli upload ${{env.HF_REPO}} venv.zip . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} rm -rf venv.zip huggingface-cli logout @@ -256,7 +256,7 @@ jobs: conda activate hf-upload python -m pip install hf-transfer huggingface_hub huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential - huggingface-cli upload ${{env.HF_REPO}} venv.zip . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }}" + huggingface-cli upload ${{env.HF_REPO}} venv.zip . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} rm -rf venv.zip huggingface-cli logout From 46cfac8d9fd51210a628dc249101190ebf4c35e9 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 17:56:58 +0700 Subject: [PATCH 65/70] Update: test run new CI for package python --- .github/workflows/python-package.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 0afc12faf..97de09d23 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -256,19 +256,21 @@ jobs: conda activate hf-upload python -m pip install hf-transfer huggingface_hub huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential - huggingface-cli upload ${{env.HF_REPO}} venv.zip . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} + huggingface-cli upload ${{env.HF_REPO}} venv.zip --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} rm -rf venv.zip huggingface-cli logout - name: Upload Artifact Windows if : runner.os == 'windows' - uses: actions/upload-artifact@v4 - with: - name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} - path: ${{env.PYTHON_FOLDER}} - include-hidden-files: true - compression-level: 9 + shell: pwsh + run: | + Compress-Archive -Path ${{env.PYTHON_FOLDER}}/* -DestinationPath venv.zip + python -m pip install hf-transfer huggingface_hub + huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential + huggingface-cli upload ${{env.HF_REPO}} venv.zip --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} + rm -rf venv.zip + huggingface-cli logout - name: Post Upload windows From a1864949904453c700175d2bd4de70eaecb6eadd Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 18:23:30 +0700 Subject: [PATCH 66/70] Update: test run new CI for package python windows --- .github/workflows/python-package.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 97de09d23..b849766ff 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -43,18 +43,18 @@ jobs: fail-fast: false matrix: include: - - os: "linux" - name: "amd64" - runs-on: "ubuntu-20-04-cuda-12-0" + # - os: "linux" + # name: "amd64" + # runs-on: "ubuntu-20-04-cuda-12-0" # - os: "mac" # name: "amd64" # runs-on: "macos-selfhosted-12" # - os: "mac" # name: "arm64" # runs-on: "macos-selfhosted-12-arm64" - # - os: "windows" - # name: "amd64" - # runs-on: "windows-cuda-12-0" + - os: "windows" + name: "amd64" + runs-on: "windows-cuda-12-0" steps: - name: Clone id: checkout @@ -241,7 +241,7 @@ jobs: conda activate hf-upload python -m pip install hf-transfer huggingface_hub huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential - huggingface-cli upload ${{env.HF_REPO}} venv.zip . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} + huggingface-cli upload ${{env.HF_REPO}} venv.zip --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} rm -rf venv.zip huggingface-cli logout From 35a31d74be422494ec49e2936dae17de2d10a165 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 18:53:58 +0700 Subject: [PATCH 67/70] Update: test run new CI for package python windows --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b849766ff..794ad0f59 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -269,7 +269,7 @@ jobs: python -m pip install hf-transfer huggingface_hub huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential huggingface-cli upload ${{env.HF_REPO}} venv.zip --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} - rm -rf venv.zip + rm venv.zip huggingface-cli logout From 3774ffe3429eb6c5c2c1251c34044d104afb6937 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 19:39:36 +0700 Subject: [PATCH 68/70] Finished: venv package --- .github/workflows/python-package.yml | 40 +++++++++++----------------- 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 794ad0f59..ccc3dbb5e 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -1,8 +1,6 @@ name: Build and Package Python Library on: - push: - branches: [ feat/python-package-ci ] workflow_dispatch: inputs: model_dir: @@ -28,12 +26,12 @@ on: env: - MODEL_DIR: models/ichigo-wrapper # ${{ inputs.model_dir }} - MODEL_NAME: ichigo # ${{ inputs.model_name }} - REPO_NAME: janhq/models # ${{ inputs.model_name }} - BRANCH_NAME: feat/ci-python-models # ${{ inputs.model_name }} - HF_REPO: cortexso/test # ${{ inputs.hf_repo }} - HF_PREFIX_BRANCH: fp16 # ${{ inputs.hf_prefix_branch }} + MODEL_DIR: ${{ inputs.model_dir }} + MODEL_NAME: ${{ inputs.model_name }} + REPO_NAME: ${{ inputs.model_name }} + BRANCH_NAME: ${{ inputs.model_name }} + HF_REPO: ${{ inputs.hf_repo }} + HF_PREFIX_BRANCH: ${{ inputs.hf_prefix_branch }} jobs: build-and-test: @@ -43,15 +41,15 @@ jobs: fail-fast: false matrix: include: - # - os: "linux" - # name: "amd64" - # runs-on: "ubuntu-20-04-cuda-12-0" - # - os: "mac" - # name: "amd64" - # runs-on: "macos-selfhosted-12" - # - os: "mac" - # name: "arm64" - # runs-on: "macos-selfhosted-12-arm64" + - os: "linux" + name: "amd64" + runs-on: "ubuntu-20-04-cuda-12-0" + - os: "mac" + name: "amd64" + runs-on: "macos-selfhosted-12" + - os: "mac" + name: "arm64" + runs-on: "macos-selfhosted-12-arm64" - os: "windows" name: "amd64" runs-on: "windows-cuda-12-0" @@ -221,14 +219,6 @@ jobs: QUILL_NOTARY_ISSUER: ${{ secrets.NOTARY_ISSUER }} QUILL_NOTARY_KEY: "/tmp/notary-key.p8" - # - name: Upload Artifact - # #if : runner.os == 'windows' || runner.os == 'linux' - # uses: actions/upload-artifact@v4 - # with: - # name: ${{env.MODEL_NAME}}-${{ matrix.os }}-${{ matrix.name }} - # path: ${{env.PYTHON_FOLDER}} - # include-hidden-files: true - # compression-level: 9 - name: Upload Artifact MacOS if : runner.os == 'macOS' From 0906a7e79da16be62d6117a616ef8fd904c8fad6 Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 22:21:44 +0700 Subject: [PATCH 69/70] feat: init CI for upload python script to huggingface --- .github/workflows/python-script-package.yml | 75 +++++++++++++++++++ ...on-package.yml => python-venv-package.yml} | 8 +- 2 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/python-script-package.yml rename .github/workflows/{python-package.yml => python-venv-package.yml} (98%) diff --git a/.github/workflows/python-script-package.yml b/.github/workflows/python-script-package.yml new file mode 100644 index 000000000..31f8ea6e8 --- /dev/null +++ b/.github/workflows/python-script-package.yml @@ -0,0 +1,75 @@ +name: Build and Package Python Code + +on: + push: + branches: + - feat/python-package-ci + workflow_dispatch: + inputs: + model_dir: + description: "Path to model directory in github repo" + required: true + repo_name: + description: "name of repo to be checked out" + required: true + branch_name: + description: "name of branch to be checked out" + required: true + default: main + hf_repo: + description: "name of huggingface repo to be pushed" + required: true + hf_prefix_branch: + description: "prefix of hf branch" + required: false + +env: + MODEL_DIR: deployments/ichigo # ${{ inputs.model_dir }} + REPO_NAME: janhq/ichigo # ${{ inputs.repo_name}} + BRANCH_NAME: feat/ichigo-deployment # ${{ inputs.branch_name }} + HF_REPO: cortexso/test # ${{ inputs.hf_repo }} + HF_PREFIX_BRANCH: fp16 # ${{ inputs.hf_prefix_branch }} + +jobs: + build-and-test: + runs-on: ${{ matrix.runs-on }} + timeout-minutes: 3600 + strategy: + fail-fast: false + matrix: + include: + - os: "linux" + name: "amd64" + runs-on: "ubuntu-20-04-cuda-12-0" + - os: "mac" + name: "amd64" + runs-on: "macos-selfhosted-12" + - os: "mac" + name: "arm64" + runs-on: "macos-selfhosted-12-arm64" + - os: "windows" + name: "amd64" + runs-on: "windows-cuda-12-0" + steps: + - name: Clone + id: checkout + uses: actions/checkout@v3 + with: + submodules: recursive + repository: ${{env.REPO_NAME}} + ref: ${{env.BRANCH_NAME}} + - name: use python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install hf-transfer huggingface_hub + + - name: Upload Artifact + run: | + huggingface-cli login --token ${{ secrets.HUGGINGFACE_TOKEN_WRITE }} --add-to-git-credential + cd ${{env.MODEL_DIR}} && huggingface-cli upload ${{env.HF_REPO}} . . --revision ${{env.HF_PREFIX_BRANCH}}-${{ matrix.os }}-${{ matrix.name }} + huggingface-cli logout \ No newline at end of file diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-venv-package.yml similarity index 98% rename from .github/workflows/python-package.yml rename to .github/workflows/python-venv-package.yml index ccc3dbb5e..8bed4eb97 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-venv-package.yml @@ -1,10 +1,10 @@ -name: Build and Package Python Library +name: Build and Package Python Virtual Environment on: workflow_dispatch: inputs: model_dir: - description: "Path to model directory in janhq/models repo" + description: "Path to model directory in github repo" required: true model_name: description: "name of model to be release" @@ -28,8 +28,8 @@ on: env: MODEL_DIR: ${{ inputs.model_dir }} MODEL_NAME: ${{ inputs.model_name }} - REPO_NAME: ${{ inputs.model_name }} - BRANCH_NAME: ${{ inputs.model_name }} + REPO_NAME: ${{ inputs.repo_name }} + BRANCH_NAME: ${{ inputs.branch_name }} HF_REPO: ${{ inputs.hf_repo }} HF_PREFIX_BRANCH: ${{ inputs.hf_prefix_branch }} From a0190f7f1947d998891d857f21e4df067270a6fb Mon Sep 17 00:00:00 2001 From: nguyenhoangthuan99 Date: Mon, 6 Jan 2025 22:24:49 +0700 Subject: [PATCH 70/70] Finished CI for upload python scripts --- .github/workflows/python-script-package.yml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/python-script-package.yml b/.github/workflows/python-script-package.yml index 31f8ea6e8..5ea65be9c 100644 --- a/.github/workflows/python-script-package.yml +++ b/.github/workflows/python-script-package.yml @@ -1,9 +1,6 @@ name: Build and Package Python Code on: - push: - branches: - - feat/python-package-ci workflow_dispatch: inputs: model_dir: @@ -24,11 +21,11 @@ on: required: false env: - MODEL_DIR: deployments/ichigo # ${{ inputs.model_dir }} - REPO_NAME: janhq/ichigo # ${{ inputs.repo_name}} - BRANCH_NAME: feat/ichigo-deployment # ${{ inputs.branch_name }} - HF_REPO: cortexso/test # ${{ inputs.hf_repo }} - HF_PREFIX_BRANCH: fp16 # ${{ inputs.hf_prefix_branch }} + MODEL_DIR: ${{ inputs.model_dir }} + REPO_NAME: ${{ inputs.repo_name}} + BRANCH_NAME: ${{ inputs.branch_name }} + HF_REPO: ${{ inputs.hf_repo }} + HF_PREFIX_BRANCH: ${{ inputs.hf_prefix_branch }} jobs: build-and-test: