feat: LRU cache for dependencies (#98) #129
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: Build Main | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
linter: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pip' | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install liblzo2-dev | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Execute linters | |
run: | | |
pylint -v --rcfile=.pylintrc *.py homcc tests | |
mypy -v --pretty *.py homcc | |
format-check: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pip' | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install liblzo2-dev | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Execute format-check | |
uses: psf/black@stable | |
with: | |
options: "--check --color --diff --verbose" | |
- name: Execute isort | |
uses: isort/isort-action@master | |
with: | |
configuration: "--check --color --diff --gitignore --verbose" | |
tests: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
cache: 'pip' | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install liblzo2-dev schroot debootstrap | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- name: Setup chroot environment | |
run: | | |
sudo debootstrap focal /var/chroot/focal http://archive.ubuntu.com/ubuntu | |
sudo ./.github/setup_chroot_env.sh focal $(id -nG | sed 's/ /,/g') | |
sudo schroot -c focal -- apt-get -y install g++ | |
- name: Setup docker container | |
run: | | |
docker run -dit --name jammy -v /tmp:/tmp ubuntu:jammy | |
- name: Install build-essential in docker container | |
run: | | |
docker exec jammy /bin/sh -c "apt-get update && apt-get install -y build-essential clang" | |
- name: Run tests | |
run: pytest -v -rfE --cov=homcc --capture=tee-sys --runschroot=focal --rundocker=jammy | |
build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install packaging dependencies # see https://github.com/astraw/stdeb/issues/175 | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y \ | |
python3 python3-dev python3-pip python3-venv python3-all \ | |
dh-python debhelper devscripts dput software-properties-common \ | |
python3-distutils python3-setuptools python3-wheel python3-stdeb \ | |
liblzo2-dev | |
- name: Install further Python dependencies | |
run: | | |
python3 -m pip install -r requirements.txt | |
- name: Build | |
run: | | |
sudo make all | |
- name: Upload .deb packages | |
uses: actions/upload-artifact@v3 | |
with: | |
name: homcc_debian_packages | |
path: target/ | |
if-no-files-found: error |