Skip to content

Merge pull request #285 from codecov/bump-to-3.7 #645

Merge pull request #285 from codecov/bump-to-3.7

Merge pull request #285 from codecov/bump-to-3.7 #645

Workflow file for this run

# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Build-Test-Upload
on: [push] # Run on any push event
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black==22.3.0 isort==5.10.1
- name: Check linting with black
run: |
black --check codecov_cli
- name: Check imports order with isort
run: |
isort --check --profile=black codecov_cli -p staticcodecov_languages
codecov-startup:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v3
- name: Install CLI
run: |
pip install codecov-cli
- name: Create commit in codecov
run: |
codecovcli create-commit -t ${{ secrets.CODECOV_TOKEN }} --git-service github
- name: Create commit report in codecov
run: |
codecovcli create-report -t ${{ secrets.CODECOV_TOKEN }} --git-service github
build-test-upload:
runs-on: ubuntu-latest
needs: codecov-startup
strategy:
fail-fast: false
matrix:
include:
- python-version: "3.11"
- python-version: "3.10"
- python-version: "3.9"
- python-version: "3.8"
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 2
- name: Set up Python ${{matrix.python-version}}
uses: actions/setup-python@v3
with:
python-version: "${{matrix.python-version}}"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
python setup.py develop
pip install -r tests/requirements.txt
- name: Test with pytest
run: |
pytest --cov
- name: Dogfooding codecov-cli. Use codecov-cli to upload to codecov (new upload endpoint)
run: |
codecovcli do-upload --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} --plugin pycoverage --flag python${{matrix.python-version}}
static-analysis:
runs-on: ubuntu-latest
needs: codecov-startup
steps:
- uses: actions/setup-python@v3
- name: Install CLI
run: |
pip install codecov-cli
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 2
- name: Static Analysis
run: |
codecovcli static-analysis --token ${{ secrets.STATIC_TOKEN }}
label-analysis:
runs-on: ubuntu-latest
needs: static-analysis
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- uses: actions/setup-python@v3
- name: Install CLI
run: |
pip install -r requirements.txt -r tests/requirements.txt
pip install codecov-cli
- name: Label Analysis
run: |
BASE_SHA=$(git merge-base HEAD^ origin/main)
echo $BASE_SHA
codecovcli label-analysis --token ${{ secrets.STATIC_TOKEN }} --base-sha=$BASE_SHA --max-wait-time=120
- name: Upload smart-labels
run: |
codecovcli --codecov-yml-path=codecov.yml do-upload --plugin pycoverage --plugin compress-pycoverage --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} --flag smart-labels