diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..c13d503 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,135 @@ +name: Build Application + +on: + push: + branches: [ "main" ] + tags: + - v* + pull_request: + branches: [ "main" ] + +permissions: + contents: read + +jobs: + build_linux: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 + pip install -r Face_Landmarker/requirements.txt + pyinstaller Face_Landmarker/Face_Landmarker_Link.spec + - name: 'Zip files' + uses: thedoctor0/zip-release@0.7.5 + with: + type: 'zip' + filename: 'Face_Landmarker_Link_linux.zip' + path: dist/Face_Landmarker_Link + - name: Archive production artifacts + uses: actions/upload-artifact@v3 + with: + name: build_artifact_linux + path: Face_Landmarker_Link_linux.zip + + build_windows: + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 + pip install -r Face_Landmarker/requirements.txt + pyinstaller Face_Landmarker/Face_Landmarker_Link.spec + - name: 'Zip files' + uses: thedoctor0/zip-release@0.7.5 + with: + type: 'zip' + filename: 'Face_Landmarker_Link_windows.zip' + path: dist/Face_Landmarker_Link + - name: Archive production artifacts + uses: actions/upload-artifact@v3 + with: + name: build_artifact_windows + path: Face_Landmarker_Link_windows.zip + + build_macos: + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 + pip install -r Face_Landmarker/requirements.txt + pyinstaller Face_Landmarker/Face_Landmarker_Link.spec + - name: 'Zip files' + uses: thedoctor0/zip-release@0.7.5 + with: + type: 'zip' + filename: 'Face_Landmarker_Link_macos.zip' + path: dist/Face_Landmarker_Link + - name: Archive production artifacts + uses: actions/upload-artifact@v3 + with: + name: build_artifact_macos + path: Face_Landmarker_Link_macos.zip + + release: + name: Release pushed tag + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-22.04 + needs: [ build_linux, build_macos, build_windows ] + permissions: + contents: write + steps: + - name: Create release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ github.ref_name }} + run: | + gh release create "$tag" \ + --repo="$GITHUB_REPOSITORY" \ + --title="${GITHUB_REPOSITORY#*/} ${tag#v}" \ + --generate-notes + - name: Download Windows artifacts + uses: actions/download-artifact@v3 + with: + name: build_artifact_windows + - name: Download Linux artifacts + uses: actions/download-artifact@v3 + with: + name: build_artifact_linux + - name: Download MacOS artifacts + uses: actions/download-artifact@v3 + with: + name: build_artifact_macos + - name: Display structure of downloaded files + run: ls -R + working-directory: . + - name: Release + uses: softprops/action-gh-release@v1 + with: + files: | + **/Face_Landmarker_Link*.zip diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2179ca9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*/build +*/dist +build +dist +.DS_Store \ No newline at end of file diff --git a/Face_Landmarker/requirements.txt b/Face_Landmarker/requirements.txt new file mode 100644 index 0000000..241fe34 --- /dev/null +++ b/Face_Landmarker/requirements.txt @@ -0,0 +1,5 @@ +numpy +timecode +mediapipe +transforms3d +pyinstaller \ No newline at end of file