diff --git a/.appveyor.yml b/.appveyor.yml index ed70c53f..77886465 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -59,8 +59,8 @@ environment: # All of these are common to all matrix runs ATM, so pre-defined here and to be overloaded if needed DTS: datalad_container - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004 - INSTALL_SYSPKGS: python3-venv xz-utils jq + APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2204 + INSTALL_SYSPKGS: python3-venv xz-utils jq libffi7 # system git-annex is way too old, use better one INSTALL_GITANNEX: git-annex -m deb-url --url http://snapshot.debian.org/archive/debian/20210906T204127Z/pool/main/g/git-annex/git-annex_8.20210903-1_amd64.deb CODECOV_BINARY: https://uploader.codecov.io/latest/linux/codecov diff --git a/.github/workflows/test_crippledfs.yml b/.github/workflows/test_crippledfs.yml new file mode 100644 index 00000000..589cb899 --- /dev/null +++ b/.github/workflows/test_crippledfs.yml @@ -0,0 +1,56 @@ +name: crippled-filesystems + +on: [pull_request] + +jobs: + test: + + runs-on: ubuntu-latest + + steps: + - name: Set up system + shell: bash + run: | + bash <(wget -q -O- http://neuro.debian.net/_files/neurodebian-travis.sh) + # enable repo for devel git-annex, if needed + #sudo sed -e 's|\(deb.*data\)|#\1|' -e 's|/debian |/debian-devel |' /etc/apt/sources.list.d/neurodebian.sources.list | sudo tee /etc/apt/sources.list.d/neurodebian-devel.sources.list + sudo apt-get update -qq + sudo apt-get install eatmydata + sudo eatmydata apt-get install git-annex-standalone dosfstools + # 500 MB VFAT FS in a box + sudo dd if=/dev/zero of=/crippledfs.img count=500 bs=1M + sudo mkfs.vfat /crippledfs.img + # mount + sudo mkdir /crippledfs + sudo mount -o "uid=$(id -u),gid=$(id -g)" /crippledfs.img /crippledfs + - name: Set up environment + run: | + git config --global user.email "test@github.land" + git config --global user.name "GitHub Almighty" + - uses: actions/checkout@v4 + - name: Set up Python 3.9 + uses: actions/setup-python@v5 + with: + python-version: 3.9 + - name: Install dependencies + run: | + pip install -r requirements-devel.txt + python -m pip install --upgrade pip + tools/ci/install-singularity.sh + - name: Installation + run: | + # package install + python -m pip install . + - name: Run tests + env: + # forces all test repos/paths into the VFAT FS + TMPDIR: /crippledfs + run: | + mkdir -p __testhome__ + cd __testhome__ + # give detailed info on actual test setup + datalad wtf + echo "== mount >>" + mount + echo "<< mount ==" + python -m pytest -s -v --doctest-modules --cov=datalad_container --pyargs datalad_container diff --git a/changelog.d/pr-279.md b/changelog.d/pr-279.md new file mode 100644 index 00000000..fd37496f --- /dev/null +++ b/changelog.d/pr-279.md @@ -0,0 +1,3 @@ +### 🧪 Tests + +- Add testing under a crippled FS. [PR #279](https://github.com/datalad/datalad-container/pull/279) (by [@yarikoptic](https://github.com/yarikoptic))