tl;dr We (the Btrfs team) have a new testing setup that uses GitHub actions, you can find the yml here. Running fstests requires a two step process, one to build the kernel and deploy it onto the runners, then the step to run the tests on the runners. The GitHub self hosted runner masks SIGPIPE, which is pretty necessary for any shell based testing, so you need a wrapper like the one provided below to keep things from breaking.