Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1688 commits
Select commit Hold shift + click to select a range
c1a3ba6
Enhance docs related to output redirection.
pekkaklarck Mar 20, 2025
2b9f0c7
Process: Kill waited process if Robot's timeout is exceeded.
pekkaklarck Mar 21, 2025
0fa6a8c
Fix typos in 7.2 release notes (tag.gz => tar.gz) (#5374)
kkotenko Mar 21, 2025
843bd64
micro optimization
pekkaklarck Mar 21, 2025
9b2cc4d
Dialogs: Add padding and increase font size.
pekkaklarck Mar 24, 2025
19b28c5
Enhance typing
pekkaklarck Mar 24, 2025
b32ec40
tkinter import cleanup
pekkaklarck Mar 24, 2025
b2fc7aa
Bundle Robot logo with the distribution.
pekkaklarck Mar 25, 2025
3e12478
Add application and taskbar icons to Dialogs.
pekkaklarck Mar 25, 2025
4cce0e9
Remove unnecessary is_truthy usage.
pekkaklarck Mar 26, 2025
cd87c47
Test cleanup.
pekkaklarck Mar 26, 2025
57fe7f5
Dialogs: Support exit by timeouts, signals and Ctrl-C.
pekkaklarck Mar 26, 2025
7a0841e
Process: Don't log timeout type because its unreliable.
pekkaklarck Mar 26, 2025
c161955
Cleanup code related to raising a TimeoutError on Windows.
pekkaklarck Mar 26, 2025
ffa840f
Dialogs: Activate default selection.
pekkaklarck Mar 26, 2025
702ed47
Refactor.
pekkaklarck Mar 26, 2025
29aebea
Fix creash with __dir__ and dynamic attributes.
pekkaklarck Mar 27, 2025
b16eec6
Fix setup/teardown using embedded args with non-string values.
pekkaklarck Mar 27, 2025
a1df52d
Add Arabic localization (#5359)
hassineabd Mar 28, 2025
9490305
Merge pull request #5342 from LucianCrainic/master
yanne Mar 31, 2025
5be76d4
libdoc: support for italian
yanne Mar 31, 2025
fa0b408
libdoc: render TypedDict structure correctly
yanne Mar 31, 2025
8c5a185
libdoc: hack for typed dict example rendering
yanne Mar 31, 2025
71e586f
assert -> assert_equal() to get better reporting
pekkaklarck Mar 31, 2025
a68f1d5
Refector handling nested TypeConverters
pekkaklarck Mar 31, 2025
1ecf76f
libdoc: add languages file for help&validation
yanne Apr 2, 2025
219a760
add invoke task to resolve supported libdoc langs
yanne Apr 2, 2025
7d55c93
TypeInfo: Make handling unknown converters configurable.
pekkaklarck Apr 2, 2025
1a8f4c6
Refactor TypeConverter.no_conversion_needed.
pekkaklarck Apr 2, 2025
417188a
libdoc: review fixes
yanne Apr 2, 2025
e3781ab
Fix problems using embedded arguments with variables.
pekkaklarck Apr 4, 2025
dcb3861
Cleanup.
pekkaklarck Apr 4, 2025
4779fb9
Respect current log level also when timeouts are active.
pekkaklarck Apr 4, 2025
65c0766
Merge pull request #5391 from robotframework/feat/libdoc-dynamic-lang…
yanne Apr 4, 2025
20bcb00
regen
pekkaklarck Apr 4, 2025
a5710cc
Add `${OPTIONS.rpa}`. Fixes #5397.
pekkaklarck Apr 4, 2025
e2bd2bb
Document issues using variables with custom embedded arg regexps
pekkaklarck Apr 4, 2025
40721f9
Rename TimeoutError to TimeoutExceeded.
pekkaklarck Apr 4, 2025
29177a3
Document how libraries can handle Robot timeouts
pekkaklarck Apr 4, 2025
13e513e
libdoc: fix language validation
yanne Apr 5, 2025
644cedc
Fix handling paremeterized special forms as type hints
pekkaklarck Apr 6, 2025
c83b63a
Fix string repr of parameterized special forms.
pekkaklarck Apr 7, 2025
c040b04
Validate variable assignment during parsing.
pekkaklarck Apr 7, 2025
1c86665
libdoc: fix rendering of <pre> blocks in docs
yanne Apr 7, 2025
fcffa3c
Micro optimization, f-strings
pekkaklarck Apr 10, 2025
13f14a7
rm unused import
pekkaklarck Apr 10, 2025
18fa4a2
search_variable: support parsing type information
pekkaklarck Apr 11, 2025
24d682a
Fix TEST scope variables on suite level.
pekkaklarck Apr 11, 2025
b36c723
Fix error calling user keyword with invalid arg spec
pekkaklarck Apr 15, 2025
c738a2a
Make time strings like `1s 2s` invalid.
pekkaklarck Apr 17, 2025
7db37a3
Use custom lib, not Process, in Libdoc tests
pekkaklarck Apr 24, 2025
4c8f33e
Update keywords to use named-only args instead of **config
pekkaklarck Apr 24, 2025
3a57fd1
Variable type conversion (#5379)
aaltat Apr 25, 2025
26eb4b1
Refactor varible conversion.
pekkaklarck Apr 25, 2025
4c7b0b6
Test data cleanup
pekkaklarck Apr 26, 2025
4648515
Add explicit package APIs.
pekkaklarck Apr 27, 2025
7e89170
Deprecate `robot.utils.ET`.
pekkaklarck Apr 27, 2025
e1f378d
Remove side-effects from `pythonpathsetter` import
pekkaklarck Apr 27, 2025
c4060d5
Deprecate is_string, is_bytes, is_number, is_integer and is_pathlike
pekkaklarck Apr 27, 2025
4f3dd96
Avoid bare `except:`
pekkaklarck Apr 27, 2025
e96e62a
Deprecate RERAISED_EXCEPTIONS.
pekkaklarck Apr 27, 2025
afeb105
Fix for delaying logging with timeouts.
pekkaklarck Apr 30, 2025
eb3fb3c
DateTime: Fix epoch secs close to the epoch on Windows
pekkaklarck Apr 30, 2025
d2cdcfa
Code formatting.
pekkaklarck Apr 30, 2025
25ad533
Bump base-x in /src/web in the npm_and_yarn group across 1 directory
dependabot[bot] Apr 30, 2025
cf4c12c
Add .git-blame-ignore-revs
pekkaklarck May 2, 2025
559f0ae
Little cleanup here and there
pekkaklarck May 2, 2025
e9050d7
Fix nested timeouts outside Windows.
pekkaklarck May 5, 2025
66d5300
Refactor timeout implementation.
pekkaklarck May 6, 2025
00d45d4
Pause timeouts when library keyword uses `BuiltIn.run_keyword`
pekkaklarck May 6, 2025
c150368
Refactor
pekkaklarck May 6, 2025
b234901
Cleanup
pekkaklarck May 7, 2025
cdf535f
Fix extended assign with `@` and `&` syntax
pekkaklarck May 7, 2025
a251531
Better performance optimization in test
pekkaklarck May 7, 2025
4067212
Merge pull request #5420 from robotframework/dependabot/npm_and_yarn/…
yanne May 7, 2025
19bb15d
Bump actions/setup-python from 5.4.0 to 5.6.0 (#5411)
dependabot[bot] May 7, 2025
514240e
Mention logging with ERROR level in `Stopping on parsing or execution…
gohierf May 7, 2025
ebcd593
Fix typos in user guide (#5378)
laurentbristiel May 7, 2025
6ad86f5
Prohibit types in embedded arguments with library keywords (#5425)
aaltat May 7, 2025
bd192d8
Clarify documentation
pekkaklarck May 7, 2025
7cf9450
Test fixes
pekkaklarck May 7, 2025
1d2acfa
formatting
pekkaklarck May 7, 2025
38c4616
Documentation enhancements
pekkaklarck May 7, 2025
de06a99
formatting
pekkaklarck May 7, 2025
65f913a
Refactor
pekkaklarck May 7, 2025
85e4c67
Test that debug file messages are not delayed
pekkaklarck May 7, 2025
aa1818a
test cleanup
pekkaklarck May 8, 2025
1476e53
Release notes for 7.3rc1
pekkaklarck May 8, 2025
48aa98b
Remove unnecessary typing_extensions usage in tests
pekkaklarck May 8, 2025
b3e881e
Updated version to 7.3rc1
pekkaklarck May 8, 2025
c9add1c
Add setuptools to dev requirements
pekkaklarck May 8, 2025
937392e
fix issue link
pekkaklarck May 8, 2025
d19dfcd
Back to dev version
pekkaklarck May 8, 2025
d32d5ad
add missing issue type
pekkaklarck May 8, 2025
6cc1198
Fix recursinve `BuiltIn.run_keyword` usage.
pekkaklarck May 9, 2025
9a6cc35
Fix Timeout.time_left() if timeout not started
pekkaklarck May 12, 2025
a1168b9
Unit tests for pausing timeouts.
pekkaklarck May 12, 2025
b1c031d
Allow starting Timeouts in `__init__`
pekkaklarck May 14, 2025
78d2d63
Timeout tuning
pekkaklarck May 14, 2025
37c979c
Test tuning
pekkaklarck May 14, 2025
09ce8ca
Fix minor bugs in robot.utils.Importer
pekkaklarck May 15, 2025
04a6efc
Fix error when adding incompatible objects to TestSuite
pekkaklarck May 15, 2025
9022df0
Fine-tune type conversion error message
pekkaklarck May 15, 2025
3e3f64e
Remove duplicate argument
pekkaklarck May 15, 2025
448fb07
FOR loop variable conversion
pekkaklarck May 16, 2025
375cc08
Enhance API docs and type hints
pekkaklarck May 16, 2025
b2c1cd1
Test tuning
pekkaklarck May 16, 2025
96c6ea5
Declare official Python 3.14 support
pekkaklarck May 16, 2025
0449463
Avoid test flakeyness
pekkaklarck May 16, 2025
2dc16cd
Enhance docs
pekkaklarck May 19, 2025
9ab62cb
Refactor
pekkaklarck May 19, 2025
77e1013
Release notes for 7.3rc2
pekkaklarck May 19, 2025
0f5cf25
Updated version to 7.3rc2
pekkaklarck May 19, 2025
22baede
Back to dev version
pekkaklarck May 19, 2025
c38531f
Use setuptools that doesn't require pyproject.toml
pekkaklarck May 19, 2025
9728623
Guard for `None`.
pekkaklarck May 19, 2025
78df7be
Process: Document that trailing newline is removed from stdout/stderr
pekkaklarck May 20, 2025
bfd2a03
Reset signal monitor between runs
pekkaklarck May 20, 2025
153db09
Remove [project] table from pyproject.toml
pekkaklarck May 20, 2025
b36bba4
buildout compatible entry point configuration
pekkaklarck May 20, 2025
5b121be
Add `EmbeddedArguments.match` back
pekkaklarck May 20, 2025
7781d8f
Command line variable conversion
pekkaklarck May 20, 2025
84cf17b
Enhance command line variable conversion test
pekkaklarck May 20, 2025
8b0dad4
Support current time conversion with `datetime` and `date`
pekkaklarck May 20, 2025
5af1f17
cleanup
pekkaklarck May 21, 2025
bd92295
Process: Enhance docs and tests related to newline handling
pekkaklarck May 21, 2025
f72db2a
Release notes for 7.3rc3
pekkaklarck May 21, 2025
3f6cb6b
Updated version to 7.3rc3
pekkaklarck May 21, 2025
1a0351e
Back to dev version
pekkaklarck May 21, 2025
c26fea6
Initial documentation for variable comversion
aaltat May 27, 2025
4db1959
Support both `now/today` with both `date/datetime` conversion.
pekkaklarck May 27, 2025
236327f
Update acknowledgements
pekkaklarck May 28, 2025
31c4daa
Don't use deprecated Default Tags in example
pekkaklarck May 28, 2025
a974f1c
UG: General cleanup to Variables section
pekkaklarck May 28, 2025
79cc536
Change embedded argument syntax with type and regexp
pekkaklarck May 29, 2025
e38c868
Enhance user keyword argument conversion errors
pekkaklarck May 30, 2025
e9fb143
Enhance tests
pekkaklarck May 30, 2025
30d87e4
Enhance variable type conversion documentation
pekkaklarck May 30, 2025
ab7d3e5
Update contribution guidelines (#5375)
robinmackaij May 30, 2025
2ac4b1e
Release notes for 7.3
pekkaklarck May 30, 2025
df95ec9
Updated version to 7.3
pekkaklarck May 30, 2025
f6b9301
UG: Fix internal link
pekkaklarck May 30, 2025
7204074
Back to dev version
pekkaklarck May 30, 2025
fd87e86
Update issue title
pekkaklarck Jun 2, 2025
ddaf044
Fix handling invalid UK argspec with types
pekkaklarck Jun 2, 2025
9526d10
Shorter timeouts in tests
pekkaklarck Jun 5, 2025
a05f167
Prefer exact match over embedded match with setup/teardown and Run Ke…
pekkaklarck Jun 5, 2025
3ddb4fe
reformat
pekkaklarck Jun 11, 2025
afdd154
Update release instructions.
pekkaklarck Jun 11, 2025
e90c913
Update contribution guidelines.
pekkaklarck Jun 13, 2025
014649b
Update CONTRIBUTING.rst (#5452)
LydiaPeabody Jun 16, 2025
3d26a62
Remove unnecessary `.readlines()`.
pekkaklarck Jun 16, 2025
d64fcd5
Use `# fmt: skip` instead of `# fmt: off/on`.
pekkaklarck Jun 16, 2025
eca2a1b
Two spaces before an inline comment.
pekkaklarck Jun 16, 2025
c77108c
New section about inline comments, fixes and adjustments
pekkaklarck Jun 16, 2025
af66f71
Fix expand icons for failed and skipped tests (#5322) (#5445)
psaikkonen Jun 16, 2025
56a770c
Refactor test toggle logic.
pekkaklarck Jun 16, 2025
a7a7b0a
Release notes for 7.3.1
pekkaklarck Jun 16, 2025
f189a6f
Updated version to 7.3.1
pekkaklarck Jun 16, 2025
f93fabf
Fixes
pekkaklarck Jun 16, 2025
14a273e
Back to dev version
pekkaklarck Jun 16, 2025
0f0d796
Fix formatting
pekkaklarck Jun 16, 2025
f41e389
Enhance tests for setup/teardown with embedded args
pekkaklarck Jun 23, 2025
23566ea
Fix embedded args related regression
pekkaklarck Jun 23, 2025
ec384e2
Try all matching BDD prefixes, not only longest.
pekkaklarck Jun 26, 2025
3d7e17e
Fix listener end_test overriding body when using JSON
pekkaklarck Jun 26, 2025
3020c5c
Fix test on PyPy
pekkaklarck Jun 26, 2025
722bd9a
Enhance/cleanup flattening output.xml
pekkaklarck Jul 2, 2025
f2c7495
Refactor keyword used in tests
pekkaklarck Jul 2, 2025
e4c6314
Enhance tests
pekkaklarck Jul 2, 2025
0c9cff3
Fix --flattenkeywords with VAR, GROUP and RETURN
pekkaklarck Jul 2, 2025
0f9e35e
Fix handling failing suite teardowns with JSON
pekkaklarck Jul 3, 2025
331394c
Don't access suite.teardown unnecessarily.
pekkaklarck Jul 3, 2025
ec5aaae
Make JsonDumber configurable.
pekkaklarck Jul 3, 2025
81b358d
Nicer signature to ExecutionResult
pekkaklarck Jul 3, 2025
f93468c
Fix `include_keywords=False` with JSON.
pekkaklarck Jul 3, 2025
0039fb8
Enhance JsonLoader config
pekkaklarck Jul 4, 2025
38e3926
Consistent naming
pekkaklarck Jul 4, 2025
3bda095
Fix --flattenkeywords with JSON outputs
pekkaklarck Jul 4, 2025
36a4d22
Release notes for 7.3.2
pekkaklarck Jul 4, 2025
5b07ac3
Updated version to 7.3.2
pekkaklarck Jul 4, 2025
dc61fed
Back to dev version
pekkaklarck Jul 4, 2025
f0f09ab
Let's start RF 7.4 development
pekkaklarck Aug 25, 2025
3fdd8dd
Cleanup.
pekkaklarck Aug 25, 2025
02d6588
Libdoc: Exclude tags from priva kws in HTML output
pekkaklarck Aug 27, 2025
b9a2aff
Bump actions/checkout from 4 to 5 (#5483)
dependabot[bot] Aug 27, 2025
4a4a394
extract untrusted github.head_ref and github.ref_name inputs to envir…
Fix3dP0int Aug 27, 2025
1494bdc
BuiltIn: Explicitly mark positional-only arguments
pekkaklarck Aug 27, 2025
d1a1cf4
Remove rflogs installation and execution step
mkorpela Aug 27, 2025
9b3381f
Remove acceptance test result archiving and rflogs
mkorpela Aug 27, 2025
fefbe21
Archive acceptance test results if job fails
mkorpela Aug 28, 2025
749eddc
Remove duplicate imports
pekkaklarck Aug 29, 2025
b4003c9
Add owner info to dynamic imports
pekkaklarck Aug 29, 2025
f676a11
Remove Jython compatibility in tests
pekkaklarck Sep 1, 2025
a44c474
Cleanup whitespace and case
pekkaklarck Sep 1, 2025
ede92c0
Emit warning if library is reimported with different args
pekkaklarck Sep 2, 2025
ce7f995
Enhance documentation related to importing same library multiple times
pekkaklarck Sep 2, 2025
0feb76b
Doc cleanup
pekkaklarck Sep 2, 2025
49c29af
Cleanup
pekkaklarck Sep 2, 2025
3545497
Update Python versions used by CI test runs
pekkaklarck Sep 3, 2025
8f0d098
Fix Python 3.14 version config
pekkaklarck Sep 3, 2025
53b260d
'3,14' -> '3.14' (#5435)
pekkaklarck Sep 3, 2025
ceb5314
VAR: Depecate scalars without value in non-local scope
pekkaklarck Sep 4, 2025
168dfc2
formatting
pekkaklarck Sep 5, 2025
0ec4807
Support `--no-status-rc` with `--help` and `--version`
pekkaklarck Sep 5, 2025
ee7b885
Bump actions/setup-python from 5.6.0 to 6.0.0 (#5493)
dependabot[bot] Sep 9, 2025
ce2f396
Bump actions/setup-node from 4 to 5 (#5494)
dependabot[bot] Sep 9, 2025
36dc874
Initial `Secret` implementation
aaltat Sep 9, 2025
850185a
Cleanup and performance optimization
pekkaklarck Sep 9, 2025
b11eadb
Cleanup related to issue #4537 and PR #5449
pekkaklarck Sep 9, 2025
c89833b
Fixes and enhancements to Secret.
pekkaklarck Sep 9, 2025
5ca887e
Secret: Simplify error reporting
pekkaklarck Sep 9, 2025
90c0d53
Fixes and enhancements to Secret tests (#4537)
pekkaklarck Sep 9, 2025
3f91560
Add type hints to DateTime library (#5488)
silentw0lf Sep 10, 2025
2b89117
Remove unused import
pekkaklarck Sep 10, 2025
a09415f
DateTime: Restrict accepted argument values with Literal.
pekkaklarck Sep 12, 2025
89edfe6
Make `robot.api.types` file, not directory, based module
pekkaklarck Sep 12, 2025
50b6c47
`robot.utils._secret` -> `robot.utils.secret`
pekkaklarck Sep 12, 2025
92bc1db
Avoid docutils configuration at module import time
pekkaklarck Sep 12, 2025
7c5c2c2
Add module needed in API doc generation
pekkaklarck Sep 12, 2025
c9bee80
regen
pekkaklarck Sep 13, 2025
d02a434
Minor API doc enhancement
pekkaklarck Sep 15, 2025
ddef0d3
Enhance `Secret` API docs
pekkaklarck Sep 15, 2025
93de8a9
Enhance Secret documentation
pekkaklarck Sep 16, 2025
2f42ee8
Minor tuning for Secret docs
pekkaklarck Sep 16, 2025
d77e75d
add transformer to trim html whitespace
yanne Sep 21, 2025
18ab362
libdoc: remove kludge
yanne Sep 21, 2025
f976ba0
libdoc: regen template
yanne Sep 21, 2025
09c23f0
libdoc: do not render empty importing section
yanne Sep 21, 2025
03b8ddc
libdoc: regen template
yanne Sep 21, 2025
2ba8187
updated npm packages
yanne Sep 21, 2025
b25a3ba
minor cleanup
pekkaklarck Sep 24, 2025
5c63de6
argumentfile.robot -> argument_file.robot
pekkaklarck Sep 24, 2025
a8a1192
refactor
pekkaklarck Sep 24, 2025
03aa465
Remove unnecessary is_falsy usage, fix doc
pekkaklarck Sep 25, 2025
f8e0b9e
Minor cleanup to code, tests and docs
pekkaklarck Sep 25, 2025
a6d8ac0
Support environment variables in argument files.
pekkaklarck Sep 25, 2025
803b953
Enhance tests for env vars in argument files
pekkaklarck Sep 25, 2025
5434d4c
Honor '-tag' syntax with keyword tags in documentation
pekkaklarck Sep 30, 2025
2056cb6
Support collapsing execution errors in log (#5016)
kiteretsu-daihyakka Oct 1, 2025
5d75fcd
Remove fallback PNG icons
pekkaklarck Oct 1, 2025
8d5475b
Log: Refactor showing execution errors
pekkaklarck Oct 1, 2025
b1fd6e9
Log: Fix suite, test, kw header misalignment
pekkaklarck Oct 1, 2025
0811db8
Log: Fine-tune execution errors
pekkaklarck Oct 1, 2025
bb50636
Drop "Test/Task" prefixes from report and log headers
pekkaklarck Oct 1, 2025
f26b81a
Fix "Test Details" header background when viewing details
pekkaklarck Oct 1, 2025
b8a56c2
Refactor LOGGER and its unit tests.
pekkaklarck Oct 2, 2025
2eec585
Fix disabling output file programmatically via LOGGER
pekkaklarck Oct 2, 2025
6fc156d
Fix #5500: event loop cannot re-initialize after finishing a suite (#…
maisonsmd Oct 3, 2025
27e7af9
Add tests for `robot.run` executing async keywords
pekkaklarck Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Code formatting.
d2cdcfa9863e405983ecafc47e2e7e5af9da68f4
72 changes: 10 additions & 62 deletions .github/workflows/acceptance_tests_cpython.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- main
- master
- v*-maintenance
paths:
- '.github/workflows/**'
- 'src/**'
Expand All @@ -18,30 +19,26 @@ jobs:
fail-fast: false
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.7', '3.8', '3.9', 'pypy3' ]
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14-dev', 'pypy-3.10' ]
include:
- os: ubuntu-latest
set_display: export DISPLAY=:99; Xvfb :99 -screen 0 1024x768x24 -ac -noreset & sleep 3
- os: windows-latest
set_codepage: chcp 850
- os: windows-latest
python-version: '3.9'
set_codepage: chcp 850
atest_args: --exclude require-lxml --exclude require-screenshot
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: 'pypy-3.10'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Setup python for starting the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: 3.6
python-version: '3.13'
architecture: 'x64'

- name: Get test starter Python at Windows
Expand All @@ -53,7 +50,7 @@ jobs:
if: runner.os != 'Windows'

- name: Setup python ${{ matrix.python-version }} for running the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand All @@ -66,22 +63,16 @@ jobs:
run: echo "BASE_PYTHON=$(which python)" >> $GITHUB_ENV
if: runner.os != 'Windows'

- name: Install Report handling tools to Windows
run: |
choco install curl -y --no-progress
choco install zip -y --no-progress
if: runner.os == 'Windows'

- name: Install Ubuntu PyPy dependencies
run: |
sudo apt-get update
sudo apt-get -y -q install libxslt-dev libxml2-dev
if: contains(matrix.python-version, 'pypy') && contains(matrix.os, 'ubuntu')

- name: Install screen and report handling tools, and other required libraries to Linux
- name: Install screen and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install xvfb scrot zip curl libxml2-dev libxslt1-dev
sudo apt-get -y -q install xvfb scrot libxml2-dev libxslt1-dev
if: contains(matrix.os, 'ubuntu')

- name: Run acceptance tests
Expand All @@ -92,52 +83,9 @@ jobs:
${{ matrix.set_display }}
${{ env.ATEST_PYTHON }} atest/run.py --interpreter ${{ env.BASE_PYTHON }} --exclude no-ci ${{ matrix.atest_args }} atest/robot

- name: Delete output.xml (on Win)
run: |
Get-ChildItem atest/results -Include output.xml -Recurse | Remove-Item
if: always() && runner.os == 'Windows'

- name: Delete output.xml (on Unix-like)
run: |
find atest/results -type f -name 'output.xml' -exec rm {} +
if: always() && runner.os != 'Windows'

- name: Archive acceptances test results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: at-results-${{ matrix.python-version }}-${{ matrix.os }}
path: atest/results
if: always() && job.status == 'failure'

- name: Upload results on *nix
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" >> $GITHUB_ENV
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" >> $GITHUB_ENV
if: always() && job.status == 'failure' && runner.os != 'Windows'

- name: Upload results on Windows
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
if: always() && job.status == 'failure' && runner.os == 'Windows'

- uses: octokit/request-action@971ad48f9c40ed001c41c2671b1e6e8e8165d5af
name: Update status with Github Status API
id: update_status
with:
route: POST /repos/:repository/statuses/:sha
repository: ${{ github.repository }}
sha: ${{ github.sha }}
state: "${{env.JOB_STATUS}}"
target_url: "${{env.REPORT_URL}}"
description: "Link to test report."
context: at-results-${{ matrix.python-version }}-${{ matrix.os }}
env:
GITHUB_TOKEN: ${{ secrets.STATUS_UPLOAD_TOKEN }}
if: always() && job.status == 'failure'
82 changes: 9 additions & 73 deletions .github/workflows/acceptance_tests_cpython_pr.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Acceptance tests (CPython + PyPy)
name: Acceptance tests (CPython)

on:
pull_request:
Expand All @@ -15,32 +15,23 @@ jobs:
fail-fast: true
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.9' ]
python-version: [ '3.8', '3.13' ]
include:
- os: ubuntu-latest
set_display: export DISPLAY=:99; Xvfb :99 -screen 0 1024x768x24 -ac -noreset & sleep 3
- os: windows-latest
set_codepage: chcp 850
- os: windows-latest
python-version: '3.9'
set_codepage: chcp 850
atest_args: --exclude require-lxml --exclude require-screenshot
exclude:
- os: windows-latest
python-version: 'pypy2'
- os: windows-latest
python-version: 'pypy3'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Setup python for starting the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: 3.6
python-version: '3.13'
architecture: 'x64'

- name: Get test starter Python at Windows
Expand All @@ -52,7 +43,7 @@ jobs:
if: runner.os != 'Windows'

- name: Setup python ${{ matrix.python-version }} for running the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand All @@ -65,22 +56,10 @@ jobs:
run: echo "BASE_PYTHON=$(which python)" >> $GITHUB_ENV
if: runner.os != 'Windows'

- name: Install Report handling tools to Windows
run: |
choco install curl -y --no-progress
choco install zip -y --no-progress
if: runner.os == 'Windows'

- name: Install Ubuntu PyPy dependencies
- name: Install screen and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install libxslt-dev libxml2-dev
if: contains(matrix.python-version, 'pypy') && contains(matrix.os, 'ubuntu')

- name: Install screen and report handling tools, and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install xvfb scrot zip curl libxml2-dev libxslt1-dev
sudo apt-get -y -q install xvfb scrot libxml2-dev libxslt1-dev
if: contains(matrix.os, 'ubuntu')

- name: Run acceptance tests
Expand All @@ -91,52 +70,9 @@ jobs:
${{ matrix.set_display }}
${{ env.ATEST_PYTHON }} atest/run.py --interpreter ${{ env.BASE_PYTHON }} --exclude no-ci ${{ matrix.atest_args }} atest/robot

- name: Delete output.xml (on Win)
run: |
Get-ChildItem atest/results -Include output.xml -Recurse | Remove-Item
if: always() && runner.os == 'Windows'

- name: Delete output.xml (on Unix-like)
run: |
find atest/results -type f -name 'output.xml' -exec rm {} +
if: always() && runner.os != 'Windows'

- name: Archive acceptances test results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: at-results-${{ matrix.python-version }}-${{ matrix.os }}
path: atest/results
if: always() && job.status == 'failure'

- name: Upload results on *nix
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" >> $GITHUB_ENV
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" >> $GITHUB_ENV
if: always() && job.status == 'failure' && runner.os != 'Windows'

- name: Upload results on Windows
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
if: always() && job.status == 'failure' && runner.os == 'Windows'

- uses: octokit/request-action@971ad48f9c40ed001c41c2671b1e6e8e8165d5af
name: Update status with Github Status API
id: update_status
with:
route: POST /repos/:repository/statuses/:sha
repository: ${{ github.repository }}
sha: ${{ github.sha }}
state: "${{env.JOB_STATUS}}"
target_url: "${{env.REPORT_URL}}"
description: "Link to test report."
context: at-results-${{ matrix.python-version }}-${{ matrix.os }}
env:
GITHUB_TOKEN: ${{ secrets.STATUS_UPLOAD_TOKEN }}
if: always() && job.status == 'failure'
24 changes: 7 additions & 17 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- main
- master
- v*-maintenance
paths:
- '.github/workflows/**'
- 'src/**'
Expand All @@ -19,35 +20,24 @@ jobs:
fail-fast: false
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.7', '3.8', '3.9', 'pypy3' ]
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14-dev', 'pypy-3.8' ]
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: 'pypy-3.8'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'

- name: Run unit tests with coverage
- name: Run unit tests
run: |
python -m pip install coverage
python -m pip install -r utest/requirements.txt
python -m coverage run --branch utest/run.py -v

- name: Prepare HTML/XML coverage report
run: |
python -m coverage xml -i
if: always()

- uses: codecov/codecov-action@e3c560433a6cc60aec8812599b7844a7b4fa0d71
with:
name: ${{ matrix.python-version }}-${{ matrix.os }}
if: always()
python utest/run.py -v
9 changes: 3 additions & 6 deletions .github/workflows/unit_tests_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,16 @@ jobs:
fail-fast: true
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.9' ]
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: [ '3.8', '3.13' ]

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v5

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.0.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand Down
10 changes: 0 additions & 10 deletions .github/workflows/upload_test_reports.yml

This file was deleted.

30 changes: 30 additions & 0 deletions .github/workflows/web_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Web tests with jest

on:
push:
branches:
- main
- master
- v*-maintenance

paths:
- '.github/workflows/**'
- 'src/web**'
- '!**/*.rst'

jobs:
jest_tests:

runs-on: 'ubuntu-latest'

name: Jest tests for the web components
steps:
- uses: actions/checkout@v5

- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: "16"
- name: Run tests
working-directory: ./src/web
run: npm install && npm run test
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,7 @@ __pycache__
.classpath
.settings
.jython_cache
.mypy_cache/
node_modules
.cache/
.parcel-cache/
Loading