name: Test Supported Distributions on: pull_request: types: [opened, synchronize, reopened, ready_for_review] permissions: contents: read jobs: smoke-tests: if: github.event.pull_request.draft == false runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4.2.0 - name: Check scripts in repository are executable run: | IFS=$'\n'; for f in $(find . -name '*.sh'); do if [[ ! -x $f ]]; then echo "$f is not executable" && FAIL=1; fi ;done unset IFS; # If FAIL is 1 then we fail. [[ $FAIL == 1 ]] && exit 1 || echo "Scripts are executable!" - name: Run shellcheck uses: ludeeus/action-shellcheck@master with: check_together: 'yes' format: tty severity: error - name: Spell-Checking uses: codespell-project/actions-codespell@master with: ignore_words_file: .codespellignore - name: Get editorconfig-checker uses: editorconfig-checker/action-editorconfig-checker@main # tag v1.0.0 is really out of date - name: Run editorconfig-checker run: editorconfig-checker - name: Check python code formatting with black uses: psf/black@stable with: src: "./test" options: "--check --diff --color" distro-test: if: github.event.pull_request.draft == false runs-on: ubuntu-latest needs: smoke-tests strategy: fail-fast: false matrix: distro: [ debian_11, debian_12, ubuntu_20, ubuntu_22, ubuntu_23, ubuntu_24, centos_9, fedora_39, fedora_40, ] env: DISTRO: ${{matrix.distro}} steps: - name: Checkout repository uses: actions/checkout@v4.2.0 - name: Set up Python 3.10 uses: actions/setup-python@v5.2.0 with: python-version: "3.10" - name: Install wheel run: pip install wheel - name: Install dependencies run: pip install -r test/requirements.txt - name: Test with tox run: tox -c test/tox.${DISTRO}.ini