--- name: Lint on: workflow_call: inputs: changed-files: required: true type: string description: JSON string containing information about changed files env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple jobs: Salt: name: Lint Salt's Source Code runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "large", "x86_64"]') || 'ubuntu-latest' }} if: ${{ contains(fromJSON('["push", "schedule", "workflow_dispatch"]'), github.event_name) || fromJSON(inputs.changed-files)['salt'] || fromJSON(inputs.changed-files)['lint'] }} container: image: ghcr.io/saltstack/salt-ci-containers/python:3.8 steps: - name: Install System Deps run: | apt-get update apt-get install -y enchant-2 git gcc make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev - name: Add Git Safe Directory run: | git config --global --add safe.directory "$(pwd)" - uses: actions/checkout@v4 - name: Install Nox run: | python -m pip install --upgrade pip pip install nox - name: Install Python Requirements run: nox --install-only --forcecolor -e lint-salt - name: Lint Changed Files if: github.event_name == 'pull_request' && fromJSON(inputs.changed-files)['salt'] && ! fromJSON(inputs.changed-files)['lint'] env: SKIP_REQUIREMENTS_INSTALL: YES run: | nox --forcecolor -e lint-salt -- ${{ join(fromJSON(inputs.changed-files)['salt_files'], ' ') }} - name: Lint ALL Files if: github.event_name != 'pull_request' || fromJSON(inputs.changed-files)['lint'] env: SKIP_REQUIREMENTS_INSTALL: YES run: | nox --forcecolor -e lint-salt Tests: name: Lint Salt's Test Suite runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "large", "x86_64"]') || 'ubuntu-latest' }} if: ${{ contains(fromJSON('["push", "schedule", "workflow_dispatch"]'), github.event_name) || fromJSON(inputs.changed-files)['tests'] || fromJSON(inputs.changed-files)['lint'] }} container: image: ghcr.io/saltstack/salt-ci-containers/python:3.8 steps: - name: Install System Deps run: | echo "deb http://deb.debian.org/debian bookworm-backports main" >> /etc/apt/sources.list apt-get update apt-get install -y enchant-2 git gcc make zlib1g-dev libc-dev libffi-dev g++ libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev libssl-dev libgnutls28-dev - name: Add Git Safe Directory run: | git config --global --add safe.directory "$(pwd)" - uses: actions/checkout@v4 - name: Install Nox run: | python -m pip install --upgrade pip pip install nox - name: Install Python Requirements run: nox --install-only --forcecolor -e lint-tests - name: Lint Changed Files if: github.event_name == 'pull_request' && fromJSON(inputs.changed-files)['tests'] && ! fromJSON(inputs.changed-files)['lint'] env: SKIP_REQUIREMENTS_INSTALL: YES run: | nox --forcecolor -e lint-tests -- ${{ join(fromJSON(inputs.changed-files)['tests_files'], ' ') }} - name: Lint ALL Files if: github.event_name != 'pull_request' || fromJSON(inputs.changed-files)['lint'] env: SKIP_REQUIREMENTS_INSTALL: YES run: | nox --forcecolor -e lint-tests