The ftest binary can run in the following modes:
-
Daemon: will act as a job server, listening for webhook events to schedule new jobs. This mode is to be used on servers.
-
CLI: Useful for running compliance tests locally on one's own computer.
0. Install Runtime Dependencies
ftest invokes a few binaries that are listed bellow:
- iproute2
- Docker
- docker-compose
- git
NOTE: The user running ftest binary must be part of the docker
UNIX
group
1. Setup networking
ftest spawns a HTTP server to collect results from test suites. Right
now, it is hard-coded to listen on port 29130
. And, since test jobs
are run in containers and the ftest binary is going to be run on host
machine, we have to setup Docker and host machine's firewall to allow
traffic. We use an nginx
container to
achieve this.
This guide has instructions for ufw
, please adopt the same for your
setup.
i. Create Docker network ftest
docker network create --attachable -d bridge --subnet 192.168.32.0/20 ftest
NOTE: if choosing custom subnet, adjust instructions in the section to match it
ii. Allow traffic from ftest
net to host machine on port 29130
sudo ufw allow from 192.168.32.0/20 proto tcp to any port 29130
2. [Optional] Install from source
Requires cargo, the Rust build tool. Please see here for installation instructions.
git clone https://git.batsense.net/ForgeFlux/ftest
cd ftest
cargo build --release
sudo cp target/release/ftest /usr/local/bin
2. Install from binary
i. Download assets
wget https://dl.forgeflux.org/forgeflux/ftest/master/ftest-master-linux-amd64.tar.gz.asc
wget https://dl.forgeflux.org/forgeflux/ftest/master/ftest-master-linux-amd64.tar.gz.sha256
wget https://dl.forgeflux.org/forgeflux/ftest/master/ftest-master-linux-amd64.tar.gz
ii Verify checksum
sha256sum -c ftest-master-linux-amd64.tar.gz.sha256
iii Verify GPG signature
All ForgeFlux binaries are signed with our GPG key. Please verify signatures to verify authenticity.
gpg --keyserver keyserver.ubuntu.com --recv 56861597C15E54520A36983A6828E4A2E5B91DB9
gpg --verify ftest-master-linux-amd64.tar.gz.asc
iv. Install binary
tar -xvzf ftest-master-linux-amd64.tar.gz && sudo cp ftest-master-linux-amd64/ftest /usr/local/bin
3. Run
The control repository has a few pre-configured targets. We recommend starting from there. Please see here to configure ftest for new specimens.
git clone https://git.batsense.net/ForgeFlux/ftest-control
cd ftest-control/targets/forgejo
ftest test .
The results will be available in JSON format and HTML format (like this one here) in the same directory.