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_ostree" - "test.run.test_sources" - "test.run.test_stages" - "test.src" steps: - name: "Clone Repository" uses: actions/checkout@v2 with: fetch-depth: 2 # codecov requires this (https://github.com/codecov/codecov-action/issues/190) - name: "Run Tests" uses: osbuild/containers/src/actions/privdocker@e4de123f43b95e99dfe8eed0bd5a1cd58db50715 with: image: ghcr.io/osbuild/osbuild-ci:latest-202106231345 run: | python3 -m pytest \ --pyargs "${{ matrix.test }}" \ --rootdir=. \ --cov-report=xml --cov=osbuild \ -v - name: Send coverage to codecov.io run: bash <(curl -s https://codecov.io/bash) 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/src/actions/privdocker@e4de123f43b95e99dfe8eed0bd5a1cd58db50715 with: image: ghcr.io/osbuild/osbuild-ci:latest-202102191311 run: | 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 schutzbot: name: "🍌 Trigger Schutzbot" runs-on: ubuntu-latest container: image: docker.io/library/python:3.7 steps: - uses: actions/checkout@v2 - name: Trigger Schutzbot env: EVENT_NAME: ${{ github.event_name }} WEBHOOK_PAYLOAD: ${{ toJSON(github.event) }} SQS_REGION: us-east-1 SQS_QUEUE_URL: "https://sqs.us-east-1.amazonaws.com/933752197999/schutzbot_webhook_sqs-staging" run: | #!/bin/bash pip3 install boto3 botocore schutzbot/send_webhook.py