Skip to content

[FEATURE] Toggleable keyword evaluation behavior (#1130) #2106

[FEATURE] Toggleable keyword evaluation behavior (#1130)

[FEATURE] Toggleable keyword evaluation behavior (#1130) #2106

Workflow file for this run

name: ytld-sub CI (Linux)
on:
pull_request:
branches:
- master
push:
branches:
- master
jobs:
test-lint:
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Run linters
run: |
pip install -e .[lint]
make check_lint
test-unit:
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Run unit tests with coverage
run: |
pip install -e .[test]
sudo apt-get update
sudo apt-get install -y ffmpeg
coverage run -m pytest --reruns 3 --reruns-delay 5 tests/unit && coverage xml -o /opt/coverage/unit/coverage.xml
- name: Save coverage
uses: actions/cache@v3
with:
path: /opt/coverage/unit
key: ${{github.sha}}-coverage-unit
test-integration:
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Run integration tests with coverage
run: |
pip install -e .[test]
sudo apt-get update
sudo apt-get install -y ffmpeg
coverage run -m pytest --reruns 3 --reruns-delay 5 tests/integration --ignore tests/integration/prebuilt_presets && coverage xml -o /opt/coverage/integration/coverage.xml
- name: Save coverage
uses: actions/cache@v3
with:
path: /opt/coverage/integration
key: ${{github.sha}}-coverage-integration
test-integration-prebuilt-presets:
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Run prebuilt preset integration tests with coverage
run: |
pip install -e .[test]
sudo apt-get update
sudo apt-get install -y ffmpeg
coverage run -m pytest --reruns 3 --reruns-delay 5 tests/integration/prebuilt_presets && coverage xml -o /opt/coverage/integration-prebuilt-presets/coverage.xml
- name: Save coverage
uses: actions/cache@v3
with:
path: /opt/coverage/integration-prebuilt-presets
key: ${{github.sha}}-coverage-integration-prebuilt-presets
test-e2e:
runs-on: ubuntu-22.04
permissions:
contents: read
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Run e2e tests with coverage
run: |
pip install -e .[test]
sudo apt-get update
sudo apt-get install -y ffmpeg
coverage run -m pytest tests/e2e && coverage xml -o /opt/coverage/e2e/coverage.xml
codecov-upload:
runs-on: ubuntu-22.04
needs: [
test-unit,
test-integration,
test-integration-prebuilt-presets,
test-e2e
]
permissions:
contents: read
steps:
- name: Restore unit test coverage
uses: actions/cache@v3
with:
path: /opt/coverage/unit
key: ${{github.sha}}-coverage-unit
- name: Restore integration test coverage
uses: actions/cache@v3
with:
path: /opt/coverage/integration
key: ${{github.sha}}-coverage-integration
- name: Restore integration prebuilt presets test coverage
uses: actions/cache@v3
with:
path: /opt/coverage/integration-prebuilt-presets
key: ${{github.sha}}-coverage-integration-prebuilt-presets
- name: Restore e2e test coverage
uses: actions/cache@v3
with:
path: /opt/coverage/e2e
key: ${{github.sha}}-coverage-e2e
- name: Upload code coverage to codecov.io
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: /opt/coverage/unit/coverage.xml,/opt/coverage/integration/coverage.xml,/opt/coverage/integration-prebuilt-presets/coverage.xml,/opt/coverage/e2e/coverage.xml