github: Avoid "This environment is externally managed" failures #78
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Tests | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
lint: | |
name: Code style and lint checks | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install system dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install \ | |
python3-pip | |
- name: Install python dependencies | |
run: | | |
python3 -m pip install flake8 | |
- name: Run flake8 | |
run: | | |
python3 -m flake8 | |
tests: | |
strategy: | |
# Let other configurations continue if one fails. | |
fail-fast: false | |
matrix: | |
include: | |
- name: Arch Base | |
image: archlinux:base | |
setup: | | |
pacman -Sy --noconfirm \ | |
base-devel \ | |
cairo \ | |
flatpak \ | |
gobject-introspection \ | |
openssh \ | |
ostree \ | |
python-pip \ | |
python-setuptools \ | |
python-wheel | |
- name: Debian Stable | |
image: debian:stable-slim | |
setup: | | |
apt-get update | |
apt-get -y install \ | |
build-essential \ | |
flatpak \ | |
gir1.2-ostree-1.0 \ | |
libcairo2-dev \ | |
libgirepository1.0-dev \ | |
openssh-client \ | |
openssh-server \ | |
ostree \ | |
python3-dev \ | |
python3-pip \ | |
python3-setuptools \ | |
python3-wheel | |
- name: Debian Testing | |
image: debian:testing-slim | |
setup: | | |
apt-get update | |
apt-get -y install \ | |
build-essential \ | |
flatpak \ | |
gir1.2-ostree-1.0 \ | |
libcairo2-dev \ | |
libgirepository1.0-dev \ | |
openssh-client \ | |
openssh-server \ | |
ostree \ | |
python3-dev \ | |
python3-pip \ | |
python3-setuptools \ | |
python3-wheel | |
- name: Fedora Stable | |
image: fedora:latest | |
setup: | | |
dnf -y install \ | |
cairo-gobject-devel \ | |
flatpak \ | |
gobject-introspection-devel \ | |
openssh-clients \ | |
openssh-server \ | |
ostree \ | |
ostree-libs \ | |
passwd \ | |
python3-devel \ | |
python3-pip | |
- name: Ubuntu LTS | |
image: ubuntu:latest | |
setup: | | |
apt-get update | |
apt-get -y install \ | |
build-essential \ | |
flatpak \ | |
gir1.2-ostree-1.0 \ | |
libcairo2-dev \ | |
libgirepository1.0-dev \ | |
openssh-client \ | |
openssh-server \ | |
ostree \ | |
python3-dev \ | |
python3-pip \ | |
python3-setuptools \ | |
python3-wheel | |
- name: Ubuntu Rolling | |
image: ubuntu:rolling | |
setup: | | |
apt-get update | |
apt-get -y install \ | |
build-essential \ | |
flatpak \ | |
gir1.2-ostree-1.0 \ | |
libcairo2-dev \ | |
libgirepository1.0-dev \ | |
openssh-client \ | |
openssh-server \ | |
ostree \ | |
python3-dev \ | |
python3-pip \ | |
python3-setuptools \ | |
python3-wheel | |
name: ${{ matrix.name }} | |
runs-on: ubuntu-latest | |
container: ${{ matrix.image }} | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
PIP_BREAK_SYSTEM_PACKAGES: 1 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: System setup | |
run: ${{ matrix.setup }} | |
# sshd refuses to run if the hardcoded privilege separation | |
# directory doesn't exist. | |
- name: Create sshd privilege separation directory | |
run: | | |
mkdir -p /run/sshd | |
# sshd won't allow root login if the account is locked. | |
- name: Ensure root account unlocked | |
run: | | |
passwd -u root | |
- name: Install python dependencies | |
run: | | |
python3 -m pip install tox | |
- name: Run tests | |
run: | | |
python3 -m tox |