name: Tests on: [pull_request, push] jobs: test_suite: name: "Test Suite" runs-on: ubuntu-latest strategy: fail-fast: false matrix: test: - "test.mod" - "test.run.test_assemblers" - "test.run.test_boot" - "test.run.test_noop" - "test.run.test_sources" - "test.run.test_stages" - "test.src" steps: - name: "Clone Repository" uses: actions/checkout@v2 - name: "Run Tests" uses: osbuild/containers/src/actions/ghci-osbuild@v1 with: run: | python3 -m unittest discover \ -k "${{ matrix.test }}" \ -s "test" \ -t . \ -v 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 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 test_data: name: "Regenerate Test Data" runs-on: ubuntu-latest steps: - name: "Clone Repository" uses: actions/checkout@v2 - name: "Regenerate Test Data" uses: osbuild/containers/ghci/actions/ghci-osbuild@ghci/v1 with: run: | make --always-make test-data git diff --exit-code -- ./test/data codespell: name: "Spell check" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: codespell-project/actions-codespell@master with: ignore_words_list: msdos skip: ./.git,coverity,rpmbuild,samples