name: CI on: # Run on pushes, pull-requests, and also once per day # (in case deps change under us, etc.) push: pull_request: schedule: # Note: '*' is a special character in YAML so we have to quote the str. - cron: '0 12 * * *' jobs: # We run most of our testing only on linux but it should apply to mac too; # we can always add an explicit mac job later if it seems worthwhile. check_linux: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 - name: Set up Python uses: actions/setup-python@v1 with: python-version: 3.8 - name: Install dependencies run: tools/pcommand install_pip_reqs - name: Run checks and tests run: make -j2 check test # Compile just a server binary but don't run asset builds/etc. # (to spare my asset file server) compile_linux: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 - name: Set up Python uses: actions/setup-python@v1 with: python-version: 3.8 - name: Compile binary run: make _cmake-simple-ci-server-build # Most of our toolset doesn't work on raw windows (outside of WSL). # However, it's nice to at least run unit tests there since some behavior # (filesystem, etc) can vary significantly between windows and linux/apple. check_windows: runs-on: windows-latest steps: - uses: actions/checkout@v1 - name: Set up Python uses: actions/setup-python@v1 with: python-version: 3.8 - name: Install dependencies run: | python -m pip install --upgrade pip pip install pytest typing_extensions - name: Run tests run: python tools/pcommand pytest -v tests