| # This is a basic workflow to help you get started with Actions |
| |
| name: MLGO CI |
| |
| on: [push, repository_dispatch] |
| |
| jobs: |
| LicenseCheck: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - run: ./check-license.sh |
| Envvars: |
| runs-on: ubuntu-latest |
| outputs: |
| version_matrix: ${{ steps.set-output.outputs.version_matrix }} |
| do_cache: ${{ steps.set-output.outputs.do_cache }} |
| steps: |
| - id: set-output |
| run: | |
| if [ -z $ACT ] |
| then |
| _ver="['3.8', '3.9', '3.10']" |
| _cache="1" |
| else |
| # 3.8 instead of '3.8' to make github act work. |
| _ver="[3.8]" |
| _cache="0" |
| fi |
| echo "::set-output name=version_matrix::$_ver" |
| echo "::set-output name=do_cache::$_cache" |
| Checks: |
| runs-on: ubuntu-latest |
| needs: [Envvars] |
| strategy: |
| matrix: |
| python-version: ${{ fromJSON(needs.Envvars.outputs.version_matrix) }} |
| task: [Typecheck, Lint, Yapf, Test] |
| include: |
| - task: Typecheck |
| cmd: pytype -j auto . |
| - task: Lint |
| cmd: pylint --rcfile .pylintrc --recursive yes . |
| - task: Yapf |
| cmd: yapf . -drp |
| - task: Test |
| cmd: pytest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Install Python With Cached pip Packages |
| if: needs.Envvars.outputs.do_cache == '1' |
| uses: actions/setup-python@v3 |
| with: |
| python-version: ${{ matrix.python-version }} |
| cache: 'pip' |
| cache-dependency-path: '**/requirements*.txt' |
| - name: Install Python, no cache |
| if: needs.Envvars.outputs.do_cache == '0' |
| uses: actions/setup-python@v3 |
| with: |
| python-version: ${{ matrix.python-version }} |
| - run: pip install -r requirements-ci.txt -q |
| - name: ${{ matrix.task }} |
| run: ${{ matrix.cmd }} |