199 lines
6.8 KiB
YAML
199 lines
6.8 KiB
YAML
|
|
name: "Development Snapshot"
|
|
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
version:
|
|
name: "Describe version"
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
tag_abbrev: ${{ steps.version.outputs.tag_abbrev }}
|
|
tag_offset: ${{ steps.version.outputs.tag_offset }}
|
|
sha_short: ${{ steps.version.outputs.sha_short }}
|
|
full_desc: ${{ steps.version.outputs.full_desc }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Version
|
|
id: version
|
|
shell: bash
|
|
run: |
|
|
tag_abbrev=$(git tag | sort -h | grep -oE "(^[0-9]+\.[0-9]+(.[0-9])?)$" | tail -1)
|
|
echo "::set-output name=tag_abbrev::$tag_abbrev"
|
|
echo "::set-output name=tag_offset::$(git rev-list $tag_abbrev..HEAD --count)"
|
|
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
|
|
echo "::set-output name=full_desc::$(git describe --long --tags)"
|
|
|
|
deb-package:
|
|
needs: version
|
|
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
|
|
|
|
- name: Upload to Artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Rare.deb
|
|
path: build/Rare.deb
|
|
|
|
appimage:
|
|
needs: version
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install build dependencies
|
|
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
|
|
run: |
|
|
cp rare/__main__.py .
|
|
appimage-builder --skip-test
|
|
mv Rare-*.AppImage Rare.AppImage
|
|
|
|
- name: Upload to Artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Rare.AppImage
|
|
path: Rare.AppImage
|
|
|
|
nuitka:
|
|
needs: version
|
|
runs-on: "windows-latest"
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.9'
|
|
architecture: x64
|
|
- name: Install build dependencies
|
|
run: pip3 install nuitka ordered-set
|
|
- name: Install target dependencies
|
|
run: |
|
|
pip3 install -r requirements.txt
|
|
pip3 install -r requirements-presence.txt
|
|
- name: Build
|
|
run: >-
|
|
python -m nuitka
|
|
--assume-yes-for-downloads
|
|
--msvc=latest
|
|
--lto=yes
|
|
--jobs=2
|
|
--static-libpython=no
|
|
--standalone
|
|
--enable-plugin=anti-bloat
|
|
--enable-plugin=pyqt5
|
|
--show-modules
|
|
--show-anti-bloat-changes
|
|
--follow-stdlib
|
|
--follow-imports
|
|
--nofollow-import-to="*.tests"
|
|
--nofollow-import-to="*.distutils"
|
|
--prefer-source-code
|
|
--include-package=pypresence
|
|
--include-package-data=qtawesome
|
|
--include-data-dir=rare\resources\images=rare\resources\images
|
|
--include-data-files=rare\resources\languages=rare\resources\languages="*.qm"
|
|
--windows-icon-from-ico=rare\resources\images\Rare.ico
|
|
--windows-company-name=Rare
|
|
--windows-product-name=Rare
|
|
--windows-file-description=rare.exe
|
|
--windows-file-version=${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}
|
|
--windows-product-version=${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}
|
|
--enable-console
|
|
rare
|
|
- name: Fix QtNetwork SSL
|
|
run: |
|
|
Copy-Item -Path "rare.dist\libcrypto-1_1.dll" -Destination "rare.dist\libcrypto-1_1-x64.dll"
|
|
Copy-Item -Path "rare.dist\libssl-1_1.dll" -Destination "rare.dist\libssl-1_1-x64.dll"
|
|
|
|
- name: Upload to Artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Rare-Windows-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}
|
|
path: rare.dist
|
|
|
|
cx_freeze:
|
|
needs: version
|
|
runs-on: "windows-latest"
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.9'
|
|
architecture: x64
|
|
- name: Install Build Dependencies
|
|
run: pip3 install --upgrade cx_freeze wheel
|
|
- name: Install Target Dependencies
|
|
run: |
|
|
pip3 install -r requirements.txt
|
|
pip3 install -r requirements-presence.txt
|
|
- name: Build
|
|
run: |
|
|
python freeze.py bdist_msi
|
|
mv dist/*.msi dist/Rare-Windows.msi
|
|
|
|
- name: Upload to Artifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Rare-Windows-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}.msi
|
|
path: dist/*.msi
|
|
|
|
mac_os:
|
|
needs: version
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.9'
|
|
- name: Install Build Dependencies
|
|
run: pip install pyinstaller
|
|
- name: Install Target Dependencies
|
|
run: |
|
|
pip install -r requirements.txt
|
|
- name: Move files
|
|
run: mv rare/__main__.py __main__.py
|
|
- name: Build
|
|
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@v3
|
|
with:
|
|
name: Rare-MacOS.dmg
|
|
path: ./*.dmg
|