Adding builds for main and some reusable workflows #67
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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: CLI CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
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/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 2 | |
- 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@v4 | |
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 | |
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/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 2 | |
- 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@v4 | |
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 |