85 lines
2.3 KiB
YAML
85 lines
2.3 KiB
YAML
name: Package using PyInstaller
|
|
on:
|
|
push:
|
|
tags:
|
|
- v**
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-windows:
|
|
env:
|
|
dist-path: dist/OpenSeeFace
|
|
runs-on: windows-latest
|
|
steps:
|
|
- name: Pull OpenSeeFace
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Create binary
|
|
shell: cmd
|
|
run: |
|
|
choco install vcredist140
|
|
|
|
xcopy c:\Windows\System32\msvcp140.dll .
|
|
xcopy c:\Windows\System32\vcomp140.dll .
|
|
xcopy c:\Windows\System32\concrt140.dll .
|
|
xcopy c:\Windows\System32\vccorlib140.dll .
|
|
|
|
make_exe.bat
|
|
|
|
- name: Move files for uploading
|
|
shell: bash
|
|
run: |
|
|
# Prevents the parent dist/ directory from being included
|
|
mv dist/facetracker ${{ env.dist-path }}
|
|
cp -r models ${{ env.dist-path }}
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: windows-latest
|
|
path: dist # Add the parent directory to prevent a tarbomb
|
|
if-no-files-found: error
|
|
|
|
# Files must be packed into a tar in order for file permissions to be preserved
|
|
build-unix:
|
|
env:
|
|
artifact-path: OpenSeeFace
|
|
tar-path: OpenSeeFace.tar
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Pull OpenSeeFace
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Create binary
|
|
shell: bash
|
|
run: |
|
|
chmod +x make_exe.sh
|
|
./make_exe.sh
|
|
|
|
- name: Move files for uploading
|
|
shell: bash
|
|
run: |
|
|
# Prevents the parent dist/ directory from being included
|
|
mv dist/facetracker ${{ env.artifact-path }}
|
|
cp -r models ${{ env.artifact-path }}
|
|
|
|
- name: Fix permissions from PyInstaller
|
|
shell: bash
|
|
run: |
|
|
find ${{ env.artifact-path }} -type f -exec chmod -x {} +
|
|
chmod +x ${{ env.artifact-path }}/facetracker
|
|
|
|
- name: Pack files into tar
|
|
shell: bash
|
|
run: tar -cvf ${{ env.tar-path }} ${{ env.artifact-path }}
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ matrix.os }}
|
|
path: ${{ env.tar-path }}
|
|
if-no-files-found: error
|