https://travis-ci.com is site which allows to make checking builds after every push of code to git repository. It could also check pull request.
It nicely integrates with Github, so to enable it's enough to just install Travis' Github App from: https://github.com/marketplace/travis-ci
Travis have also free plan for Open Source projects, so there is no cost involved.
When installed, after every push a build is started on Travis-CI servers. After build finish, status of commit is updated, so everyone can see if build passed or failed. Clicking on details gives more information about which job(s) within all build failed and even direct output from virtual machine, so it's easy to check why something went wrong.
Of course, Travis-CI also needs configuration to define what should be run to test code, so every project must have .travis.yml file and some others if external scripts are needed.
Standard Travis-CI file with definitions of jobs.
There are 2 stages of tests:
Script used to build single target during 'test' stage.
Script used to build all targets using all compilers during 'check sizes' stage.
Include script used to download and unpack tools. Used by travis-build.sh and travis-check-sizes.sh scripts.
Helper script for local testing (on Linux) builds. It sets all necessary environment variables to make travis-build.sh or travis-check-sizes.sh on local machine. Need to be sourced from repository parent directory:
. scripts/travis-env.inc.sh
Helper script used by travis-check-sizes.sh to download and extract all needed compilers. It uses docs/arduino-gcc-versions.md file to find which Arduino version should be downloaded.