name: Lint on: [push, pull_request] jobs: Salt: name: Lint Salt's Source Code runs-on: ubuntu-latest container: image: python:3.8.6-slim-buster steps: - name: Install System Deps run: | apt-get update apt-get install -y enchant git gcc make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev - uses: actions/checkout@v2 - name: Set Python Version Env Var run: | echo PY_VERSION=$(python -c 'import sys; print("{}.{}".format(*sys.version_info))') >> $GITHUB_ENV - name: Install Nox run: | python -m pip install --upgrade pip pip install nox - name: Set Lint Python Cache Key run: echo "PY=$(python --version --version | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV - name: Setup Nox Cache uses: pat-s/always-upload-cache@v2.1.3 with: path: .nox/ key: lint-salt|${{ env.PY }}|${{ hashFiles(format('requirements/static/ci/py{0}/*.txt', env.PY_VERSION)) }} - id: changed-files name: Get Changed Files uses: dorny/paths-filter@v2 with: token: ${{ github.token }} list-files: json filters: | salt: - added|modified: - setup.py - noxfile.py - salt/**/*.py - tasks/**/*.py - name: Install Python Requirements env: PIP_EXTRA_INDEX_URL: https://artifactory.saltstack.net/artifactory/api/pypi/pypi-open/simple/ run: nox --install-only --forcecolor -e lint-salt - name: Lint Changed Files if: github.event_name == 'pull_request' && steps.changed-files.outputs.salt == 'true' env: SKIP_REQUIREMENTS_INSTALL: YES run: | nox --forcecolor -e lint-salt -- ${{ join(fromJSON(steps.changed-files.outputs.salt_files), ' ') }} - name: Lint ALL Files if: steps.changed-files.outputs.salt == 'true' env: SKIP_REQUIREMENTS_INSTALL: YES run: | nox --forcecolor -e lint-salt Tests: name: Lint Salt's Test Suite runs-on: ubuntu-latest container: image: python:3.8.6-slim-buster steps: - name: Install System Deps run: | apt-get update apt-get install -y enchant git gcc make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev - uses: actions/checkout@v2 - name: Set Python Version Env Var run: | echo PY_VERSION=$(python -c 'import sys; print("{}.{}".format(*sys.version_info))') >> $GITHUB_ENV - name: Install Nox run: | python -m pip install --upgrade pip pip install nox - name: Set Lint Python Cache Key run: echo "PY=$(python --version --version | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV - name: Setup Nox Cache uses: pat-s/always-upload-cache@v2.1.3 with: path: .nox/ key: lint-tests|${{ env.PY }}|${{ hashFiles(format('requirements/static/ci/py{0}/*.txt', env.PY_VERSION)) }} - id: changed-files name: Get Changed Files uses: dorny/paths-filter@v2 with: token: ${{ github.token }} list-files: json filters: | tests: - added|modified: - tests/**/*.py - name: Install Python Requirements env: PIP_EXTRA_INDEX_URL: https://artifactory.saltstack.net/artifactory/api/pypi/pypi-open/simple/ run: nox --install-only --forcecolor -e lint-tests - name: Lint Changed Files if: github.event_name == 'pull_request' && steps.changed-files.outputs.tests == 'true' env: SKIP_REQUIREMENTS_INSTALL: YES run: | nox --forcecolor -e lint-tests -- ${{ join(fromJSON(steps.changed-files.outputs.tests_files), ' ') }} - name: Lint ALL Files if: steps.changed-files.outputs.tests == 'true' env: SKIP_REQUIREMENTS_INSTALL: YES run: | nox --forcecolor -e lint-tests