HTML2PDF4Doc Fuzz Testing on Linux #20
This file contains hidden or 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
name: "HTML2PDF4Doc Fuzz Testing on Linux" | |
on: | |
pull_request: | |
branches: [ "**" ] | |
schedule: | |
- cron: "00 00 * * *" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
timeout-minutes: 120 # 2 hours | |
strategy: | |
matrix: | |
python-version: [ | |
"3.12" | |
] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip | |
run: | | |
python -m pip install --upgrade pip | |
- name: Install Python packages | |
run: | | |
pip install -r requirements.development.txt | |
- name: Clone html2pdf4doc.js | |
run: | | |
invoke bootstrap | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install html2pdf4doc dependencies. | |
run: | | |
python developer/pip_install_html2pdf4doc_deps.py | |
- name: Run Lint tasks | |
run: | | |
invoke lint | |
- name: Build HTML2PDF4Doc.js | |
run: | | |
invoke build | |
- name: Run tests | |
run: | | |
if [ "${{ github.event_name }}" = "schedule" ]; then | |
echo "🕒 Running long fuzzing..." | |
invoke test-fuzz --long | |
else | |
echo "🚀 Running short fuzzing..." | |
invoke test-fuzz | |
fi | |
- name: Upload broken PDFs as artifact | |
# Always upload, even if job fails. | |
if: failure() || always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: broken-pdfs | |
path: output/ | |
retention-days: 30 |