add macOS ARM64 wheel build #784
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: Check linting with ruff | |
run: | | |
make lint | |
codecov-startup: | |
runs-on: ubuntu-latest | |
if: ${{ !github.event.pull_request.head.repo.fork && github.repository_owner == 'codecov' }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 2 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- 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 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- python-version: "3.12" | |
- 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@v5 | |
with: | |
python-version: "${{matrix.python-version}}" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
python -m pip install -e . | |
pip install -r tests/requirements.txt | |
- name: Test with pytest | |
run: | | |
pytest --cov --junitxml=${{matrix.python-version}}junit.xml | |
- name: Dogfooding codecov-cli | |
if: ${{ !github.event.pull_request.head.repo.fork && github.repository_owner == 'codecov' }} | |
run: | | |
codecovcli -v do-upload --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} --plugin pycoverage --flag python${{matrix.python-version}} | |
codecovcli do-upload --report-type test_results --fail-on-error -t ${{ secrets.CODECOV_TOKEN }} --plugin pycoverage --flag python${{matrix.python-version}} | |
- name: Upload artifacts for test-results-processing | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{matrix.python-version}}junit.xml | |
path: ${{matrix.python-version}}junit.xml | |
static-analysis: | |
runs-on: ubuntu-latest | |
needs: codecov-startup | |
if: ${{ !github.event.pull_request.head.repo.fork && github.repository_owner == 'codecov' }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 2 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- 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 | |
if: ${{ !github.event.pull_request.head.repo.fork && github.repository_owner == 'codecov' }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install dependencies for Dogfooding | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
python -m pip install -e . | |
pip install -r tests/requirements.txt | |
- 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 | |
process-test-results: | |
if: ${{ always() }} | |
needs: build-test-upload | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 2 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install dependencies for Dogfooding | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
python -m pip install -e . | |
pip install -r tests/requirements.txt | |
- name: Download all test results | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: "*junit.xml" | |
path: "test_results" | |
merge-multiple: true | |
- name: Dogfooding codecov-cli | |
if: ${{ !cancelled() && github.ref && contains(github.ref, 'pull') }} | |
run: | | |
codecovcli process-test-results --dir test_results --github-token ${{ secrets.GITHUB_TOKEN }} |