LFS workaround using archived releases in CI #61
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
# SPDX-FileCopyrightText: 2013-2020 Christopher Kerr, "bcolsen" | |
# SPDX-License-Identifier: GPL-3.0-or-later | |
name: CI tests | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
concurrency: | |
# cancels running checks on new pushes | |
group: check-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
pytest: | |
name: Run Python unit tests | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
max-parallel: 6 | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
lfs: false | |
# Due to limited LFS bandwidth, it is preferable to download | |
# test files from the last release. | |
# | |
# This does mean that testing new LFS files in the CI is tricky; | |
# care should be taken to also test new files locally first | |
# Tests missing these files in the CI should still fail. | |
- name: Download static files from last release for testing | |
uses: robinraju/release-downloader@v1 | |
with: | |
latest: true | |
tarBall: true | |
zipBall: false | |
out-file-path: /home/runner/work/last-release | |
extract: true | |
- name: Copy test files from static downloaded release | |
run: | | |
ls -al tests/testdata | |
ls -al /home/runner/work/last-release/*/tests/testdata | |
cp -r /home/runner/work/last-release/*/tests/testdata tests | |
ls -al tests/testdata | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install MDBTools OS dependency | |
run: | | |
sudo apt install -y mdbtools | |
# tox-gh workflow following instructions at https://github.com/tox-dev/tox-gh | |
- name: Install tox | |
run: python -m pip install tox-gh | |
- name: Setup tests | |
run: | | |
tox -vv --notest | |
- name: Run all tests | |
run: |- | |
tox --skip-pkg-install |