name: PyInstaller on: push: branches: - master pull_request: branches: - master jobs: build: runs-on: [self-hosted, linux, ARM64] strategy: matrix: os: [windows-2019, macos-13, ubuntu-20.04] steps: - uses: actions/checkout@v2 - name: Install UPX uses: crazy-max/ghaction-upx@v2 if: matrix.os == 'windows-2019' || matrix.os == 'ubuntu-20.04' with: install-only: true - name: UPX version if: matrix.os == 'windows-2019' || matrix.os == 'ubuntu-20.04' run: upx --version - name: Setup Python 3.10 uses: actions/setup-python@v2 with: python-version: '3.10' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install face_recognition --no-deps pip install pyinstaller - name: Test number_perser.get_number run: | python number_parser.py -v - name: Build with PyInstaller for macos/ubuntu if: matrix.os == 'macos-13' || matrix.os == 'ubuntu-20.04' run: | pyinstaller \ --onefile Movie_Data_Capture.py \ --python-option u \ --hidden-import "ImageProcessing.cnn" \ --add-data "$(python -c 'import cloudscraper as _; print(_.__path__[0])' | tail -n 1):cloudscraper" \ --add-data "$(python -c 'import opencc as _; print(_.__path__[0])' | tail -n 1):opencc" \ --add-data "$(python -c 'import face_recognition_models as _; print(_.__path__[0])' | tail -n 1):face_recognition_models" \ --add-data "Img:Img" \ --add-data "scrapinglib:scrapinglib" \ --add-data "config.ini:." \ - name: Build with PyInstaller for windows if: matrix.os == 'windows-2019' run: | pyinstaller ` --onefile Movie_Data_Capture.py ` --python-option u ` --hidden-import "ImageProcessing.cnn" ` --add-data "$(python -c 'import cloudscraper as _; print(_.__path__[0])' | tail -n 1);cloudscraper" ` --add-data "$(python -c 'import opencc as _; print(_.__path__[0])' | tail -n 1);opencc" ` --add-data "$(python -c 'import face_recognition_models as _; print(_.__path__[0])' | tail -n 1);face_recognition_models" ` --add-data "Img;Img" ` --add-data "scrapinglib;scrapinglib" ` --add-data "config.ini;." ` - name: Copy config.ini run: | cp config.ini dist/ - name: Set VERSION variable for macos/ubuntu if: matrix.os == 'macos-13' || matrix.os == 'ubuntu-20.04' run: | echo "VERSION=$(python Movie_Data_Capture.py --version)" >> $GITHUB_ENV echo "ARCH=$(arch)" >> $GITHUB_ENV - name: Set VERSION variable for windows if: matrix.os == 'windows-2019' run: | echo "VERSION=$(python Movie_Data_Capture.py --version)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "ARCH=$env:PROCESSOR_ARCHITECTURE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: Upload build artifact uses: actions/upload-artifact@v1 with: name: MDC-${{ env.VERSION }}-${{ runner.os }}-${{ env.ARCH }} path: dist - name: Run test (Ubuntu & MacOS) if: matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-13' run: | cd dist touch IPX-292.mp4 touch STAR-437-C.mp4 touch 122922_001.mp4 ./Movie_Data_Capture