name: "Test" on: push: branches: [ main ] pull_request: # The branches below must be a subset of the branches above branches: [ main ] workflow_dispatch: jobs: pylint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: submodules: true - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install dependencies run: | python -m pip install --upgrade pip pip install pylint pip install -r requirements.txt - name: Install legendary run: | pip install ./rare/legendary - name: Analysing the code with pylint run: | pylint -E rare --disable=E0611,E1123,E1120 --ignore=ui,singleton.py --extension-pkg-whitelist=PyQt5 appimage: runs-on: ubuntu-20.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 cx_freeze: runs-on: "windows-latest" steps: - uses: actions/checkout@v2 with: submodules: true - uses: actions/setup-python@v2 with: python-version: '3.8' - name: Dependencies run: pip3 install -r requirements.txt - name: cx_freeze run: pip3 install --upgrade cx_freeze wheel - name: Install legendary run: | pip install ./rare/legendary - 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 ./rare/legendary 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