mirror of
https://github.com/HorlogeSkynet/archey4
synced 2024-11-24 04:00:10 +01:00
167 lines
4.0 KiB
YAML
167 lines
4.0 KiB
YAML
---
|
|
name: Integration
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
python_test:
|
|
name: Run against Python ${{ matrix.python-version }} on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
CLICOLOR_FORCE: 1
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os:
|
|
- 'macOS-latest'
|
|
- 'ubuntu-latest'
|
|
python-version:
|
|
# - '3.7'
|
|
# - '3.8'
|
|
- '3.9'
|
|
# - '3.10'
|
|
- '3.11'
|
|
- '3.12-dev'
|
|
- 'pypy3.9'
|
|
include:
|
|
- os: 'ubuntu-20.04'
|
|
python-version: '3.6'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Install required dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip setuptools
|
|
|
|
- name: Install module regularly
|
|
run: pip install .
|
|
|
|
- name: Simple module executions
|
|
run: |
|
|
time archey
|
|
time python -m archey
|
|
|
|
- name: Run our test suite
|
|
run: python -m unittest
|
|
|
|
standalone_build:
|
|
name: Standalone builds
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
CLICOLOR_FORCE: 1
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: "3.11"
|
|
|
|
- name: Install required dependencies
|
|
run: |
|
|
sudo apt update && sudo apt install -y patchelf
|
|
python -m pip install --upgrade pip setuptools
|
|
pip install nuitka pex stickytape pyinstaller
|
|
pip install .
|
|
|
|
- name: Standalone building (with Nuitka)
|
|
run: |
|
|
python -m nuitka \
|
|
--onefile \
|
|
--include-package=archey.logos \
|
|
--output-filename=archey \
|
|
--output-dir=dist \
|
|
--quiet \
|
|
archey/__main__.py
|
|
time ./dist/archey
|
|
rm dist/archey
|
|
|
|
- name: Standalone building (with PEX)
|
|
run: |
|
|
pex \
|
|
-o dist/archey \
|
|
-m archey \
|
|
.
|
|
time ./dist/archey
|
|
rm dist/archey
|
|
|
|
- name: Standalone building (with Stickytape)
|
|
run: |
|
|
stickytape \
|
|
--copy-shebang \
|
|
--add-python-path . \
|
|
--output-file dist/archey \
|
|
--add-python-module archey.logos."$(python -c 'import distro; print(distro.id())')" \
|
|
archey/__main__.py
|
|
chmod +x dist/archey
|
|
time ./dist/archey
|
|
rm dist/archey
|
|
|
|
- name: Standalone building (with PyInstaller)
|
|
run: |
|
|
pyinstaller \
|
|
--distpath dist \
|
|
--specpath dist \
|
|
--name archey \
|
|
--onefile archey/__main__.py \
|
|
--hidden-import archey.logos."$(python -c 'import distro; print(distro.id())')" \
|
|
--log-level WARN
|
|
time ./dist/archey
|
|
rm dist/archey
|
|
|
|
python_lint:
|
|
name: Lint Python sources
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: "3.11"
|
|
|
|
- name: Install required dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pylint pylint-secure-coding-standard mypy black isort
|
|
pip install .
|
|
|
|
- name: Lint sources against Pylint
|
|
run: pylint archey/
|
|
|
|
- name: Lint sources against Mypy
|
|
run: mypy archey/
|
|
|
|
- name: Run isort
|
|
run: isort --check --diff archey/
|
|
|
|
- name: Run Black
|
|
run: black --check --diff archey/
|
|
|
|
shell_lint:
|
|
name: Lint packaging shell scripts
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- run: shellcheck packaging/*
|
|
|
|
man_lint:
|
|
name: Lint manual page
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- run: sudo apt update && sudo apt install -y groff
|
|
|
|
- run: |
|
|
groff -man -Tascii -z archey.1 2&>1 | tee errors
|
|
test ! -s errors
|