1
0
Fork 0
mirror of synced 2024-06-03 03:04:42 +12:00
Rare/.github/workflows/release-tests.yml

247 lines
8.7 KiB
YAML
Raw Normal View History

2021-12-08 11:07:30 +13:00
2023-12-02 02:25:12 +13:00
name: "Snapshot"
2021-09-05 05:38:28 +12:00
on:
workflow_dispatch:
jobs:
2022-09-17 00:54:46 +12:00
version:
2023-12-02 02:25:12 +13:00
name: "Version"
2022-09-17 00:54:46 +12:00
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: |
2023-05-04 03:47:40 +12:00
tag_abbrev=$(git tag --sort=v:refname | grep -oE "(^[0-9]+\.[0-9]+(.[0-9]+)?)$" | tail -1)
echo "tag_abbrev=$tag_abbrev" >> $GITHUB_OUTPUT
echo "tag_offset=$(git rev-list $tag_abbrev..HEAD --count)" >> $GITHUB_OUTPUT
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "full_desc=$(git describe --long --tags)" >> $GITHUB_OUTPUT
2022-09-17 00:54:46 +12:00
deb-package:
2022-09-17 00:54:46 +12:00
needs: version
runs-on: ubuntu-22.04
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.makedeb.org/rare build
sed -i 's/source=.*/source=("rare-test::git+$url")/g' build/PKGBUILD
sed -i "s/\$pkgver/${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}/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-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}.deb
path: Rare.deb
appimage:
2022-09-17 00:54:46 +12:00
needs: version
2022-08-30 05:10:54 +12:00
runs-on: ubuntu-22.04
2021-09-15 05:42:13 +12:00
steps:
2022-09-17 00:54:46 +12:00
- uses: actions/checkout@v3
- name: Install build dependencies
2021-09-15 05:42:13 +12:00
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
2021-09-15 05:42:13 +12:00
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
2021-09-15 05:42:13 +12:00
run: |
appimage-builder --skip-test
mv Rare-*.AppImage Rare.AppImage
mv Rare-*.AppImage.zsync Rare.AppImage.zsync
- name: Upload to Artifacts
uses: actions/upload-artifact@v3
2021-09-20 09:18:06 +12:00
with:
name: Rare-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}.AppImage
2021-09-20 09:18:06 +12:00
path: Rare.AppImage
- name: Upload to Artifacts (zsync)
2023-05-03 09:49:39 +12:00
uses: actions/upload-artifact@v3
with:
name: Rare-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}.AppImage.zsync
path: Rare.AppImage.zsync
2023-05-03 09:49:39 +12:00
2022-09-10 09:49:17 +12:00
nuitka:
if: ${{ false }}
2022-09-17 00:54:46 +12:00
needs: version
2022-09-10 09:49:17 +12:00
runs-on: "windows-latest"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
2022-09-10 09:49:17 +12:00
with:
2023-05-03 09:49:39 +12:00
cache: pip
2022-09-10 09:49:17 +12:00
python-version: '3.9'
2023-05-03 09:49:39 +12:00
check-latest: true
architecture: x64
- name: Install build dependencies
run: pip3 install nuitka ordered-set
- name: Install target dependencies
2022-09-10 09:49:17 +12:00
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
2022-09-17 00:54:46 +12:00
--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: Compress
run: |
python -c "import shutil; shutil.make_archive('Rare-Windows', 'zip', 'rare.dist')"
- name: Upload to Artifacts
uses: actions/upload-artifact@v3
2022-09-10 09:49:17 +12:00
with:
2022-09-17 00:54:46 +12:00
name: Rare-Windows-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}
path: Rare-Windows.zip
2022-09-10 09:49:17 +12:00
cx_freeze_msi:
2022-09-17 00:54:46 +12:00
needs: version
runs-on: "windows-latest"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
2023-05-03 09:49:39 +12:00
cache: pip
python-version: '3.11'
check-latest: true
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 Rare.msi
2021-09-20 09:18:06 +12:00
- name: Upload to Artifacts
uses: actions/upload-artifact@v3
2021-09-20 09:18:06 +12:00
with:
name: Rare-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}.msi
path: Rare.msi
2022-09-08 04:42:07 +12:00
cx_freeze_zip:
2023-03-20 09:42:40 +13:00
needs: version
runs-on: "windows-latest"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
cache: pip
python-version: '3.11'
check-latest: true
architecture: x64
- name: Install build dependencies
run: pip3 install cx_freeze
- name: Install target dependencies
run: |
pip3 install -r requirements.txt
pip3 install -r requirements-presence.txt
pip3 install .
- name: Build
run: cxfreeze -c rare/main.py --target-dir dist --target-name rare --icon rare/resources/images/Rare.ico -OO --base-name Win32GUI
- name: Compress
run: |
python -c "import shutil; shutil.make_archive('Rare-Windows', 'zip', 'dist')"
2023-03-20 09:42:40 +13:00
- name: Upload to Artifacts
uses: actions/upload-artifact@v3
with:
2023-03-20 09:42:40 +13:00
name: Rare-Windows-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}.zip
path: Rare-Windows.zip
mac_os:
2022-09-17 00:54:46 +12:00
needs: version
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
2023-05-03 09:49:39 +12:00
cache: pip
python-version: '3.11'
check-latest: true
- 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.dmg dist/Rare.App --volname Rare --volicon rare/resources/images/Rare.icns
2023-12-02 02:25:12 +13:00
- name: Upload to Artifacts
uses: actions/upload-artifact@v3
with:
name: Rare-${{ needs.version.outputs.tag_abbrev }}.${{ needs.version.outputs.tag_offset }}.dmg
path: Rare.dmg