-
Notifications
You must be signed in to change notification settings - Fork 4
94 lines (94 loc) · 3.54 KB
/
run_tests.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: Run tests for Meaningless
on:
workflow_dispatch:
inputs:
run_system_tests:
description: 'Run system tests'
required: true
default: 'true'
schedule:
# Every Sunday at 1:45PM UTC
- cron: '45 13 * * 0'
jobs:
Run-Tests:
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
matrix:
# Omit macos-latest due to its high cost to run in GitHub Actions.
# Note that we can also test specific OS versions, e.g. windows-2016
os: [ubuntu-latest, windows-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
name: Build for ${{ matrix.os }} with Python ${{ matrix.python-version }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r REQUIREMENTS.txt
- name: Run general unit tests
run: |
cd test
echo "Running common utilties doctests..."
python unit_tests_common.py
echo "Running Base Extractor unit tests..."
python unit_tests_bible_base_extractor.py
- name: Run YAML unit tests
run: |
cd test
echo "Running YAML Extractor unit tests..."
python unit_tests_bible_yaml_extractor.py
echo "Running YAML file interface unit tests..."
python unit_tests_yaml_file_interface.py
echo "Running YAML Downloader unit tests..."
python unit_tests_bible_yaml_downloader.py
- name: Run JSON unit tests
run: |
cd test
echo "Running JSON file interface unit tests..."
python unit_tests_json_file_interface.py
echo "Running JSON Extractor unit tests..."
python unit_tests_bible_json_extractor.py
echo "Running JSON Downloader unit tests..."
python unit_tests_bible_json_downloader.py
- name: Run XML unit tests
run: |
cd test
echo "Running XML file interface unit tests..."
python unit_tests_xml_file_interface.py
echo "Running XML Extractor unit tests..."
python unit_tests_bible_xml_extractor.py
echo "Running XML Downloader unit tests..."
python unit_tests_bible_xml_downloader.py
- name: Run CSV unit tests
run: |
cd test
echo "Running CSV file interface unit tests..."
python unit_tests_csv_file_interface.py
echo "Running CSV Extractor unit tests..."
python unit_tests_bible_csv_extractor.py
echo "Running CSV Downloader unit tests..."
python unit_tests_bible_csv_downloader.py
- name: Run Web Extractor and related unit tests
run: |
cd test
echo "Running Web Extractor unit tests..."
python unit_tests_bible_web_extractor.py
echo "Running List Extractor unit tests..."
python unit_tests_bible_list_extractor.py
echo "Running Base Downloader unit tests..."
python unit_tests_bible_base_downloader.py
- if: github.event.inputs.run_system_tests == 'true' || github.event_name == 'schedule'
name: Run system tests
run: |
cd test
echo "Running Bible translation system tests..."
python system_tests_bible_translations.py
- name: Report job status
run: |
echo "This job's status is ${{ job.status }}."