debian-forge/.github/workflows/tests.yml
Major Hayden 3233093045 💃 Use pre-built containers
Now that containers are being built daily in GitHub Actions from
the container[0] repository, we can use those containers. That will
speed up the GitHub Actions for osbuild and reduce errors from
unreleased Fedora versions.

[0] https://github.com/osbuild/containers

Signed-off-by: Major Hayden <major@redhat.com>
2020-03-25 08:21:48 +01:00

119 lines
2.8 KiB
YAML

name: Tests
on: [pull_request, push]
jobs:
pylint:
name: "pylint"
runs-on: ubuntu-latest
container:
image: docker.io/library/python:3.7
steps:
- name: Install pylint
run: pip install pylint==2.4.1
- name: Clone repository
uses: actions/checkout@v2
with:
path: osbuild
- name: Run pylint
run: |
cd osbuild
pylint osbuild runners/* assemblers/* stages/* sources/*
documentation:
name: "📚 Documentation"
runs-on: ubuntu-latest
container:
image: docker.io/library/python:3.7
steps:
- name: Install Dependencies
run: |
pip install docutils
- name: Clone repository
uses: actions/checkout@v2
with:
path: osbuild
- name: Generate Documentation
run: |
make \
-f osbuild/Makefile \
SRCDIR=osbuild \
BUILDDIR=build \
RST2MAN=rst2man.py \
man
- name: Verify Documentation
working-directory: build
run: |
test -d docs
test -f docs/osbuild.1
unit_tests:
name: "unit"
runs-on: ubuntu-latest
container:
image: docker.io/library/python:3.7
options: --privileged # Needed for bind mounts in unit tests
steps:
- name: Clone repository
uses: actions/checkout@v2
with:
path: osbuild
- name: Run test_osbuild
run: |
cd osbuild
python3 -m unittest -v test.test_osbuild
- name: Run test_objectstore
run: |
cd osbuild
python3 -m unittest -v test.test_objectstore
- name: Run test_osrelease
run: |
cd osbuild
python3 -m unittest -v test.test_osrelease
rpm_build:
name: "📦 RPM"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
fedora_release: ["31", "32", "33"]
container:
image: "quay.io/osbuild/osbuild-fedora${{ matrix.fedora_release }}:latest"
steps:
- name: "📥 Prepare container"
run: |
echo "fastestmirror=1" >> /etc/dnf/dnf.conf
echo "install_weak_deps=0" >> /etc/dnf/dnf.conf
rm -fv /etc/yum.repos.d/fedora*modular*
- name: "🗄️ Clone the repository"
uses: actions/checkout@v2
- name: "🛒 Install RPM build dependencies"
run: dnf -y builddep osbuild.spec
- name: "🛠️ Build RPMs"
run: |
mkdir rpms
make srpm
cp -av rpmbuild/SRPMS/*.rpm rpms/
make rpm
cp -av rpmbuild/RPMS/*/*.rpm rpms/
- name: "📤 Upload artifacts"
uses: actions/upload-artifact@v1
with:
name: rpms
path: rpms/
- name: "🔎 Test RPM installation"
run: dnf -y install $(ls rpms/*.noarch.rpm)