[Feature] Checkpointing with Workflows #1255
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
name: Check Coverage | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
env: | |
POETRY_VERSION: "1.8.3" | |
SYSTEM_VERSION_COMPAT: "1" | |
jobs: | |
test: | |
runs-on: ubuntu-latest-unit-tester | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.9"] | |
steps: | |
- name: clear space | |
env: | |
CI: true | |
shell: bash | |
run: rm -rf /opt/hostedtoolcache/* | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: update rustc | |
run: rustup update stable | |
- name: Install Poetry | |
run: pipx install poetry==${{ env.POETRY_VERSION }} | |
- name: Set up python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: pantsbuild/actions/init-pants@v5-scie-pants | |
with: | |
# v0 makes it easy to bust the cache if needed | |
# just increase the integer to start with a fresh cache | |
gha-cache-key: v1-py${{ matrix.python_version }} | |
named-caches-hash: v1-py${{ matrix.python_version }} | |
pants-python-version: ${{ matrix.python-version }} | |
pants-ci-config: pants.toml | |
- name: Check BUILD files | |
run: | | |
pants tailor --check :: -docs/:: | |
- name: Run coverage checks on changed packages | |
run: | | |
# Get the changed files | |
CHANGED_FILES=$(pants list --changed-since=origin/main) | |
# Find which roots contain changed files | |
CHANGED_ROOTS="" | |
FILTER_PATTERNS="[" | |
for file in $CHANGED_FILES; do | |
# Start with the full path | |
root="$file" | |
# Keep going up the directory tree until we find a directory containing a marker file | |
# (e.g., 'pyproject.toml' for python projects) | |
while [[ ! -f "$root/pyproject.toml" && "$root" != "." && "$root" != "/" && "$root" != "./" ]]; do | |
root=$(dirname "$root") | |
done | |
if [[ "$root" != "." && "$root" != "/" && "$root" != "./" && ! "$FILTER_PATTERNS" =~ "$root" ]]; then | |
FILTER_PATTERNS="${FILTER_PATTERNS}'${root}/llama_index'," | |
CHANGED_ROOTS="${CHANGED_ROOTS} ${root}/::" | |
fi | |
done | |
# remove the last comma and close the bracket | |
FILTER_PATTERNS="${FILTER_PATTERNS%,}]" | |
echo "Coverage filter patterns: $FILTER_PATTERNS" | |
echo "Changed roots: $CHANGED_ROOTS" | |
pants --level=error --no-local-cache test \ | |
--test-use-coverage \ | |
--coverage-py-filter="${FILTER_PATTERNS}" \ | |
${CHANGED_ROOTS} |