name: Tests on: [pull_request, push] jobs: source_tests: name: "Source Tests" runs-on: ubuntu-latest steps: - name: "Clone Repository" uses: actions/checkout@v2 - name: "Run Source Tests" uses: osbuild/containers/ghci/actions/ghci-osbuild@ghci/v1 with: run: make test-src module: name: "Module Unittests" runs-on: ubuntu-latest container: docker.io/library/python:3.7 steps: - name: Clone repository uses: actions/checkout@v2 - name: Run Module Unittests run: make test-module 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: Install Dependencies run: pip install jsonschema - 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 sample_validation: name: "sample validation" runs-on: ubuntu-latest container: image: docker.io/library/python:3.7 steps: - name: Clone repository uses: actions/checkout@v2 with: path: osbuild - name: Install Dependencies run: | pip install jsonschema - name: Validate the samples run: | cd osbuild for f in samples/*; do python3 -m osbuild --libdir . --inspect "$f" > /dev/null done