Use Python 3.10 for app #33
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: New Release | |
on: | |
push: | |
tags: | |
- 'v*.*.*' | |
permissions: | |
contents: write | |
jobs: | |
release: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Build Changelog | |
id: github_release | |
uses: mikepenz/release-changelog-builder-action@v3 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
configurationJson: | | |
{ | |
"template": "## What's Changed\n\n<details>\n<summary>Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>\n\nIf you find this project useful, please consider [sponsoring](https://ko-fi.com/vietanhdev) its development.", | |
"categories": [ | |
{ | |
"title": "## 🚀 Features", | |
"labels": ["feature"] | |
}, | |
{ | |
"title": "## 🐛 Fixes", | |
"labels": ["fix"] | |
}, | |
{ | |
"title": "## 💬 Other", | |
"labels": ["other"] | |
} | |
] | |
} | |
- name: Create Release | |
id: create_release | |
uses: mikepenz/[email protected] | |
with: | |
body: ${{steps.github_release.outputs.changelog}} | |
draft: true | |
prerelease: true | |
- name: Create release url file | |
run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt | |
- name: Save release url file for publish | |
uses: actions/upload-artifact@v1 | |
with: | |
name: release_url | |
path: release_url.txt | |
publish: | |
needs: [release] | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
python-version: 3.10 | |
miniconda-version: "latest" | |
- name: Set preferred device to CPU | |
shell: bash -l {0} | |
run: >- | |
sed -i'' -e 's/\_\_preferred_device\_\_[ ]*=[ ]*\"[A-Za-z0-9]*\"/__preferred_device__ = "CPU"/g' anylabeling/app_info.py | |
- name: Install main | |
shell: bash -l {0} | |
run: | | |
pip install . | |
- name: Install PyQt5 for macOS | |
shell: bash -l {0} | |
run: | | |
conda install -c conda-forge pyqt==5.15.7 | |
if: runner.os == 'macOS' | |
- name: Run pyinstaller | |
shell: bash -l {0} | |
run: | | |
pip install pyinstaller | |
pyinstaller anylabeling.spec | |
- name: Load release url file from release job | |
uses: actions/download-artifact@v1 | |
with: | |
name: release_url | |
- name: Get release file name & upload url | |
id: get_release_info | |
run: | | |
echo "::set-output name=upload_url::$(cat release_url/release_url.txt)" | |
- name: Upload release executable on macOS & Linux | |
id: upload_release_executable_macos_linux | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release_info.outputs.upload_url }} | |
asset_path: ./dist/anylabeling | |
asset_name: AnyLabeling-${{ runner.os }} | |
asset_content_type: application/octet-stream | |
if: runner.os != 'Windows' | |
- name: Upload release executable on Windows | |
id: upload_release_executable_windows | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release_info.outputs.upload_url }} | |
asset_path: ./dist/anylabeling.exe | |
asset_name: AnyLabeling.exe | |
asset_content_type: application/octet-stream | |
if: runner.os == 'Windows' | |
- name: Create dmg for macOS | |
run: | | |
npm install -g create-dmg | |
cd dist | |
create-dmg AnyLabeling.app || test -f AnyLabeling\ 0.0.0.dmg | |
mv AnyLabeling\ 0.0.0.dmg AnyLabeling.dmg | |
if: runner.os == 'macOS' | |
- name: Upload release app on macOS | |
id: upload_release_app_macos | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release_info.outputs.upload_url }} | |
asset_path: ./dist/AnyLabeling.dmg | |
asset_name: AnyLabeling.dmg | |
asset_content_type: application/octet-stream | |
if: runner.os == 'macOS' | |
publish-gpu: | |
needs: [release] | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
python-version: 3.10 | |
miniconda-version: "latest" | |
- name: Set preferred device to GPU | |
shell: bash -l {0} | |
run: >- | |
sed -i'' -e 's/\_\_preferred_device\_\_[ ]*=[ ]*\"[A-Za-z0-9]*\"/__preferred_device__ = "GPU"/g' anylabeling/app_info.py | |
- name: Install main | |
shell: bash -l {0} | |
run: | | |
pip install . | |
- name: Install PyQt5 for macOS | |
shell: bash -l {0} | |
run: | | |
conda install -c conda-forge pyqt==5.15.7 | |
if: runner.os == 'macOS' | |
- name: Run pyinstaller | |
shell: bash -l {0} | |
run: | | |
pip install pyinstaller | |
pyinstaller anylabeling.spec | |
- name: Load release url file from release job | |
uses: actions/download-artifact@v1 | |
with: | |
name: release_url | |
- name: Get release file name & upload url | |
id: get_release_info | |
run: | | |
echo "::set-output name=upload_url::$(cat release_url/release_url.txt)" | |
- name: Upload release executable on macOS & Linux | |
id: upload_release_executable_macos_linux | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release_info.outputs.upload_url }} | |
asset_path: ./dist/anylabeling | |
asset_name: AnyLabeling-${{ runner.os }}-GPU | |
asset_content_type: application/octet-stream | |
if: runner.os != 'Windows' | |
- name: Upload release executable on Windows | |
id: upload_release_executable_windows | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release_info.outputs.upload_url }} | |
asset_path: ./dist/anylabeling.exe | |
asset_name: AnyLabeling-GPU.exe | |
asset_content_type: application/octet-stream | |
if: runner.os == 'Windows' | |
- name: Create dmg for macOS | |
run: | | |
npm install -g create-dmg | |
cd dist | |
create-dmg AnyLabeling.app || test -f AnyLabeling\ 0.0.0.dmg | |
mv AnyLabeling\ 0.0.0.dmg AnyLabeling-GPU.dmg | |
if: runner.os == 'macOS' | |
- name: Upload release app on macOS | |
id: upload_release_app_macos | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release_info.outputs.upload_url }} | |
asset_path: ./dist/AnyLabeling-GPU.dmg | |
asset_name: AnyLabeling-GPU.dmg | |
asset_content_type: application/octet-stream | |
if: runner.os == 'macOS' |