diff --git a/.github/actions/environment/action.yml b/.github/actions/environment/action.yml index 48687f92b4c392d3e835d752dbc95eb1d7e599ca..d81ff16c3c2f61cf0fa566ab0af2de9438201d8c 100644 --- a/.github/actions/environment/action.yml +++ b/.github/actions/environment/action.yml @@ -85,4 +85,31 @@ runs: # files from previous runs, to avoid of it need to run: git clean -xffd git submodule foreach --recursive 'git clean -xffd' + + # A temporary workaround that should be removed after the corresponding + # issue is fixed. See for details: + # https://github.com/tarantool/tarantool/issues/7472. + if ${{ runner.os == 'Linux' && github.workflow == 'coverage' }}; then + LUAJIT_TEST_VARDIR=/tmp/luajit-test-vardir + LUAJIT_TEST_VARDIR_DISK=/tmp/luajit-test-vardir-disk/disk.ext4 + + # Create ${LUAJIT_TEST_VARDIR}. + umount ${LUAJIT_TEST_VARDIR} || true + rm -rf ${LUAJIT_TEST_VARDIR} + mkdir -p ${LUAJIT_TEST_VARDIR} + + # Create a 1GB file (disk image). + mkdir -p $(dirname ${LUAJIT_TEST_VARDIR_DISK}) + dd if=/dev/zero of=${LUAJIT_TEST_VARDIR_DISK} bs=4096 count=256000 + + # Format this file as an ext4 filesystem. + mkfs -t ext4 -q ${LUAJIT_TEST_VARDIR_DISK} -F + + # Mount this filesystem to ${LUAJIT_TEST_VARDIR}. + mount -o loop,rw,usrquota,grpquota \ + ${LUAJIT_TEST_VARDIR_DISK} \ + ${LUAJIT_TEST_VARDIR} + + echo LUAJIT_TEST_VARDIR=${LUAJIT_TEST_VARDIR} | tee -a $GITHUB_ENV + fi shell: bash