1
0
Fork 0
mirror of synced 2024-05-05 21:22:45 +12:00
Rare/.github/workflows/tests.yml
2022-09-10 01:19:00 +03:00

160 lines
5.4 KiB
YAML

name: "Test"
on:
workflow_dispatch:
jobs:
pylint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Set up 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 pylint
pip install -r requirements.txt
pip install pypresence
- name: Analysing the code with pylint
run: |
pylint -E rare --disable=E0611,E1123,E1120 --ignore=ui,singleton.py --extension-pkg-whitelist=PyQt5
deb-package:
runs-on: ubuntu-latest
steps:
- name: Install Makedeb
run: |
wget -qO - 'https://proget.hunterwittenborn.com/debian-feeds/makedeb.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/makedeb-archive-keyring.gpg &> /dev/null
echo 'deb [signed-by=/usr/share/keyrings/makedeb-archive-keyring.gpg arch=all] https://proget.hunterwittenborn.com/ makedeb main' | sudo tee /etc/apt/sources.list.d/makedeb.list
sudo apt update
sudo apt install makedeb
- name: prepare source directory
run: |
git clone https://mpr.hunterwittenborn.com/rare.git build
sed -i 's/source=.*/source=("rare-test::git+$url")/g' build/PKGBUILD
sed -i "s/\$pkgver/test/g" build/PKGBUILD
- name: build deb
run: |
cd build
makedeb -d
mv *.deb Rare.deb
- uses: actions/upload-artifact@v2
with:
name: Rare.deb
path: build/Rare.deb
appimage:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: install Deps
run: |
sudo apt update
sudo apt install python3 python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace fuse
- name: install appimage-builder
run: |
sudo wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool
sudo chmod +x /usr/local/bin/appimagetool
sudo pip3 install appimage-builder
- name: Build Appimage
run: |
cp rare/__main__.py .
appimage-builder --skip-test
mv Rare-*.AppImage Rare.AppImage
- uses: actions/upload-artifact@v2
with:
name: Rare.AppImage
path: Rare.AppImage
nuitka:
runs-on: "windows-latest"
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: Dependencies
run: |
pip3 install -r requirements.txt
pip3 install -r requirements-presence.txt
- name: Build Dependencies
run: pip3 install nuitka ordered-set PyQt5-stubs
- name: Build
run: |
python -m nuitka --assume-yes-for-downloads --follow-imports --prefer-source-code --mingw64 --lto=no --static-libpython=no --standalone --enable-plugin=anti-bloat --enable-plugin=pyqt5 --show-anti-bloat-changes --nofollow-import-to="*.tests" --nofollow-import-to="*.distutils" --include-package-data=qtawesome --include-data-dir=rare\resources\images=rare\resources\images --include-data-files=rare\resources\languages=rare\resources\languages="*.ts" --windows-icon-from-ico=rare\resources\images\Rare.ico --windows-company-name=Rare --windows-product-name=Rare --windows-file-version=1.9.0 --windows-product-version=1.9.0 --windows-disable-console rare
python -c "import shutil; shutil.make_archive('Rare-Windows-Nuitka', 'zip', 'rare.dist')"
- uses: actions/upload-artifact@v2
with:
name: Rare-Windows-Nuitka.zip
path: Rare-Windows-Nuitka.zip
cx_freeze:
runs-on: "windows-latest"
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions/setup-python@v2
with:
python-version: '3.10'
- name: Dependencies
run: pip3 install -r requirements.txt
- name: cx_freeze
run: pip3 install --upgrade cx_freeze wheel
- name: pypresence
run: pip3 install pypresence
- name: Build
run: python freeze.py bdist_msi
- uses: actions/upload-artifact@v2
with:
name: Rare-Windows.msi
path: dist/*.msi
mac_os:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: Pip Dependencies
run: |
pip install -r requirements.txt
pip install pyinstaller
- name: copy files
run: mv rare/__main__.py __main__.py
- name: run pyinstaller
run: |
pyinstaller -F --name Rare --add-data "rare/resources/languages/*:rare/resources/languages" --add-data "rare/resources/images/*:rare/resources/images/" --windowed --icon rare/resources/images/Rare.icns --hidden-import=legendary __main__.py
- name: create dmg
run: |
git clone https://github.com/create-dmg/create-dmg
create-dmg/create-dmg Rare-${{github.ref}}.dmg dist/Rare.App --volname Rare --volicon rare/resources/images/Rare.icns
- uses: actions/upload-artifact@v2
with:
name: Rare-MacOS.dmg
path: ./*.dmg