Skip to content

[PACKAGING] Provides a dedicated AppArmor profile #236

[PACKAGING] Provides a dedicated AppArmor profile

[PACKAGING] Provides a dedicated AppArmor profile #236

Workflow file for this run

---
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 for standalone builds
run: |
python -m pip install --upgrade pip setuptools
pip install pex stickytape pyinstaller
- 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
# Currently disabled against Python 3.12.
- name: Standalone building (with PEX)
if: ${{ matrix.python-version != '3.12-dev' }}
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
# Disabled against PyPy (see <https://stackoverflow.com/a/22245203>).
# Currently disabled against Python 3.12.
- name: Standalone building (with PyInstaller)
if: ${{ matrix.python-version != 'pypy3.9' && matrix.python-version != '3.12-dev' }}
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.10"
- name: Install lint tools and project (for its 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:
name: Lint packaging shell scripts
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: shellcheck packaging/*
man:
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