# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. name: Python API on: push: branches: - dev paths: - 'dolphinscheduler-python/**' pull_request: paths: - 'dolphinscheduler-python/**' concurrency: group: py-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true defaults: run: working-directory: dolphinscheduler-python/pydolphinscheduler # We have to update setuptools wheel to package with package_data, LICENSE, NOTICE env: DEPENDENCES: pip setuptools wheel tox jobs: lint: name: Lint timeout-minutes: 15 runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 uses: actions/setup-python@v2 with: python-version: 3.7 - name: Install Dependences run: | python -m pip install --upgrade ${{ env.DEPENDENCES }} - name: Run All Lint Check run: | python -m tox -vv -e lint pytest: name: Pytest timeout-minutes: 15 needs: lint runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: python-version: [3.6, 3.7, 3.8, 3.9] os: [ubuntu-18.04, macOS-latest, windows-latest] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install Dependences run: | python -m pip install --upgrade ${{ env.DEPENDENCES }} - name: Run All Tests run: | python -m tox -vv -e code-test doc-build: name: Docs Build Test timeout-minutes: 15 needs: lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 uses: actions/setup-python@v2 with: python-version: 3.7 - name: Install Dependences run: | python -m pip install --upgrade ${{ env.DEPENDENCES }} - name: Run Tests Build Docs run: | python -m tox -vv -e doc-build-test verify-local-ci: name: Local CI timeout-minutes: 15 needs: - pytest - doc-build runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 uses: actions/setup-python@v2 with: python-version: 3.7 - name: Install Dependences run: | python -m pip install --upgrade ${{ env.DEPENDENCES }} - name: Run Tests Build Docs run: | python -m tox -vv -e local-ci