mirror of
https://github.com/tanrax/RSSingle.git
synced 2024-11-10 08:35:42 +01:00
b526fc582f
Hi @tanrax! As part of our new collaboration, I've made an initial version for automated CI for RSSingle. It needs macOS to work first, so I've commented out a draft version of the `pyinstaller` aspect, so I'll make this PR a draft for now when we can discuss further, preferably in a GH issue for transparency (unless you want it private?), but this workflow tests on PRs and pushes to any branch, with flake8 across multiple Python versions. The pyinstaller aspect only runs if the flake8 check passes. What do you think? Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
55 lines
1.9 KiB
YAML
55 lines
1.9 KiB
YAML
name: CI workflow for RSSingle
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build-and-check:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.8", "3.9", "3.10"]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install flake8
|
|
pip install -r requirements.txt
|
|
- name: Lint with flake8
|
|
run: |
|
|
# stop the build if there are Python syntax errors or undefined names
|
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
|
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
|
|
|
# to be completed once macOS builds fixed
|
|
create-and-publish-release:
|
|
needs: build-and-check
|
|
if: startsWith(github.ref, 'refs/tags/') && success()
|
|
strategy:
|
|
matrix:
|
|
# `--windowed` is for macOS, and `--onefile` is for other OSes.
|
|
pyinstaller-type: ['--windowed', '--onefile']
|
|
runs-on: ubuntu-latest
|
|
name: Builder for Python all-in-one executables, published on a releases
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: "3.8"
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pyinstaller
|
|
pip install -r requirements.txt
|
|
- name: Build RSSingle
|
|
run: pyinstaller ${{ matrix.pyinstaller-type }} ./rssingle.py
|
|
- name: List artifacts for finishing this action
|
|
run: find ./dist/
|