# This workflow will install Python dependencies, run tests and lint with a single version of Python # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python name: Python application on: push: branches: [ "main" ] pull_request: branches: [ "main" ] permissions: contents: read jobs: build-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install ccache for Nuitka run: sudo apt update && sudo apt install -y ccache libicu70 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Build Package run: | pyside6-project build nuitka3 --show-progress --include-data-dir=data=data --include-data-dir=resources=resources --assume-yes-for-downloads --onefile --plugin-enable=pyside6 NUSGet.py - name: Prepare Package for Upload run: | mv NUSGet.bin ~/NUSGet.bin cd ~ tar cvf NUSGet.tar NUSGet.bin - name: Upload Package uses: actions/upload-artifact@v4.3.0 with: path: ~/NUSGet.tar name: NUSGet-linux-bin build-macos: runs-on: macos-12 steps: - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Build Package run: | pyside6-project build nuitka3 --show-progress --include-data-dir=data=data --include-data-dir=resources=resources --assume-yes-for-downloads --standalone --plugin-enable=pyside6 NUSGet.py --macos-create-app-bundle --macos-app-icon=resources/icon.png - name: Prepare Package for Upload run: | mv NUSGet.app ~/NUSGet.app cd ~ tar cvf NUSGet.tar NUSGet.app - name: Upload Package uses: actions/upload-artifact@v4.3.0 with: path: ~/NUSGet.tar name: NUSGet-macos-bin build-windows: runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Build Package run: | pyside6-project build nuitka --show-progress --include-data-dir=data=data --include-data-dir=resources=resources --assume-yes-for-downloads --onefile --windows-icon-from-ico=resources/icon.png --plugin-enable=pyside6 NUSGet.py --windows-console-mode=disable - name: Upload Package uses: actions/upload-artifact@v4.3.0 with: path: D:\a\NUSGet\NUSGet\NUSGet.exe name: NUSGet-windows-bin