SQ: Bump timeout #892
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Useful documentation for GitHub Actions workflows: | |
# https://docs.github.com/en/actions/using-workflows/about-workflows | |
name: push-github-action | |
# Useful documentation for `on`: | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on | |
on: | |
# Run CI whenever a push is made to any branch | |
push: null | |
# Run CI on the tip of any open pull request | |
pull_request: null | |
# Allow CI to be run manually in GitHub Actions UI | |
workflow_dispatch: null | |
jobs: | |
build-windows: | |
strategy: | |
matrix: | |
os: | |
# NOTE: Earliest Windows supported by Crystal is Windows 7 | |
#- windows-7 # available only as a self-hosted runner | |
#- windows-2012-r2 # based on Windows 7 # no longer supported by GitHub Actions | |
#- windows-2016 # based on Windows 8.1 # no longer supported by GitHub Actions | |
- windows-2019 # based on Windows 10 | |
- windows-latest | |
python-version: ["3.8", "3.9"] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 35 # 150% of normal time: 23 min, as of 2024-02-22 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install Poetry | |
run: pipx install poetry | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: poetry | |
- name: Install dependencies with Poetry | |
# If build takes a very long time, then it's likely that the version | |
# of wxPython installed does not offer a precompiled wheel for this | |
# version of Python. Check the wxPython PyPI page to confirm. | |
timeout-minutes: 2 # normally takes 15s, as of 2023-03-03 | |
run: poetry install | |
- name: Display SQLite version and JSON support | |
run: | | |
python3 -c "import sqlite3; print('SQLite %s' % sqlite3.sqlite_version)" | |
poetry run python -c "from crystal.util.xsqlite3 import sqlite_has_json_support; print('JSON Support: ' + ('yes' if sqlite_has_json_support else 'NO'))" | |
- name: Run non-UI tests | |
run: poetry run python -m pytest | |
- name: Display Inno Setup in Program Files | |
run: | | |
dir "C:\Program Files (x86)" | |
dir "C:\Program Files (x86)\Inno Setup 6" | |
- name: Build .exe and installer | |
working-directory: ".\\setup" | |
run: "poetry run .\\make-win.bat" | |
- name: Run UI tests | |
working-directory: ".\\setup" | |
run: | | |
$LOGDIR = "$HOME\AppData\Local\DaFoster\Crystal Web Archiver\Logs" | |
$env:CRYSTAL_SCREENSHOTS_DIRPATH = "$env:GITHUB_WORKSPACE\screenshots" | |
poetry run python run_exe.py "--argsfile=arguments.txt" "--stdoutfile=$LOGDIR\stdout.log" "--stderrfile=$LOGDIR\stderr.log" "dist\Crystal Web Archiver.exe" "---" "--test" "crystal.tests.test_bulkheads" | |
- name: Upload screenshot if test failure | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: screenshots | |
path: screenshots | |
if-no-files-found: ignore | |
- name: Upload distribution artifact | |
# Only export distribution artifact for earliest supported Python and OS | |
if: (matrix.python-version == '3.8') && (matrix.os == 'windows-7') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: dist-win | |
path: "setup\\dist-win\\*.exe" | |
if-no-files-found: warn |