name: ci-black-formatting on: push: pull_request: env: PYTHON_VERSION: "3.12" jobs: lint-formatting: runs-on: ubuntu-latest steps: - name: Action - checkout repository uses: actions/checkout@v4.2.2 - name: Action - install python uses: actions/setup-python@v5.3.0 with: python-version: "${{ env.PYTHON_VERSION }}" - name: Install dependencies run: | python3 -m pip install --upgrade pip python3 -m pip install 'black>=24.10.0' # black doesn't catch all syntax errors, so we check them explicitly. - name: Check syntax errors id: syntax-errors run: | ERROR=0 python3 -W error -m compileall -q src/ifcopenshell-python || ERROR=1 python3 -W error -m compileall -q src/bonsai || ERROR=1 exit $ERROR continue-on-error: true - name: Black formatter id: linting run: | python3 -m black --diff --check . continue-on-error: true - name: Final check run: | ERROR=0 if [ "${{ steps.syntax-errors.outcome }}" != "success" ]; then echo "::error::Syntax errors check failed, see 'syntax-errors' step for the details." && ERROR=1 fi if [ "${{ steps.linting.outcome }}" != "success" ]; then echo "::error::Black formatting check failed, see 'linting' step for the details." && ERROR=1 fi exit $ERROR