| # This is a basic workflow to help you get started with Actions |
| |
| name: MLGO CI |
| |
| permissions: |
| contents: read |
| |
| on: |
| push: |
| branches: |
| - 'main' |
| repository_dispatch: |
| pull_request: |
| |
| jobs: |
| LicenseCheck: |
| runs-on: ubuntu-22.04 |
| steps: |
| - uses: actions/checkout@v4 |
| - run: ./check-license.sh |
| Checks: |
| runs-on: ubuntu-22.04 |
| strategy: |
| matrix: |
| python-version: ['3.10', '3.11'] |
| task: [Typecheck, Lint, Ruff, Yapf, Test] |
| include: |
| - task: Typecheck |
| cmd: pytype -j auto . |
| - task: Lint |
| cmd: pylint --rcfile .pylintrc --recursive yes . |
| - task: Ruff |
| cmd: ruff check |
| - task: Yapf |
| cmd: yapf . -drp |
| - task: Test |
| cmd: pytest |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Install Python |
| uses: actions/setup-python@v5 |
| with: |
| python-version: ${{ matrix.python-version }} |
| cache: 'pipenv' |
| cache-dependency-path: Pipfile.lock.${{ matrix.python-version }} |
| - name: Install Pipenv |
| run: pip3 install pipenv |
| - name: Install Python Dependencies |
| run: ./versioned_pipenv sync --categories="packages dev-packages ci" --verbose |
| - name: ${{ matrix.task }} |
| run: ./versioned_pipenv run ${{ matrix.cmd }} |