Skip to content

Commit 3302dbd

Browse files
committed
Merge remote-tracking branch 'origin/master' into pr/andy-kru/485
2 parents be7a3f1 + 066848b commit 3302dbd

File tree

4 files changed

+37
-176
lines changed

4 files changed

+37
-176
lines changed

.github/workflows/docker-build.yml

Lines changed: 4 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
name: Docker
1+
name: Robot Framework in Docker
22

33
on:
44
push:
55
# Publish `master` as Docker `latest` image.
6+
# Release branches will trigger the creation of a git tag if the build is successful
67
branches:
78
- master
8-
9-
# Publish `v1.2.3` tags as releases.
10-
tags:
11-
- '*'
9+
- release/*
1210

1311
# Run tests for any PRs.
1412
pull_request:
@@ -27,6 +25,7 @@ jobs:
2725
matrix:
2826
include:
2927
- browser: "chrome"
28+
- browser: "edge"
3029
- browser: "firefox"
3130
env:
3231
BROWSER: ${{ matrix.browser }}
@@ -155,127 +154,3 @@ jobs:
155154
-e BROWSER=$BROWSER \
156155
-e TZ="America/New_York" \
157156
$IMAGE_NAME
158-
159-
# Build and run tests for Microsoft Edge.
160-
# This must be processed separately from Firefox and Chrome, due to the Browser library not handling Microsoft Edge by default
161-
# and having no easy way to install new browsers unfortunately.
162-
build-microsoft-edge:
163-
runs-on: ubuntu-latest
164-
env:
165-
BROWSER: "edge"
166-
steps:
167-
- name: Checkout
168-
uses: actions/checkout@v2
169-
- name: Build image
170-
run:
171-
podman build . --tag $IMAGE_NAME --file Dockerfile
172-
- name: Basic Test
173-
run: |
174-
podman run --shm-size=1g \
175-
-v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \
176-
-v `pwd`/test/requests.robot:/opt/robotframework/tests/requests.robot:Z \
177-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
178-
-v `pwd`/test/timezones.robot:/opt/robotframework/tests/timezones.robot:Z \
179-
-e BROWSER=$BROWSER \
180-
$IMAGE_NAME
181-
- name: Test dependency installation
182-
run: |
183-
podman run --shm-size=1g \
184-
-v `pwd`/test/pip-dependencies/main.robot:/opt/robotframework/tests/pip-dependencies.robot:Z \
185-
-v `pwd`/test/pip-dependencies/requirements.txt:/opt/robotframework/pip-requirements.txt:Z \
186-
-e BROWSER=$BROWSER \
187-
$IMAGE_NAME
188-
- name: Colour Depth 16 Test
189-
run: |
190-
podman run --shm-size=1g \
191-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
192-
-e BROWSER=$BROWSER \
193-
-e SCREEN_COLOUR_DEPTH=16 \
194-
$IMAGE_NAME
195-
- name: Screen Width 800x600 Test
196-
run: |
197-
podman run --shm-size=1g \
198-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
199-
-e BROWSER=$BROWSER \
200-
-e SCREEN_WIDTH=800 \
201-
-e SCREEN_HEIGHT=600 \
202-
$IMAGE_NAME
203-
- name: Screen Width 1024x768 Test
204-
run: |
205-
podman run --shm-size=1g \
206-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
207-
-e BROWSER=$BROWSER \
208-
-e SCREEN_WIDTH=1024 \
209-
-e SCREEN_HEIGHT=768 \
210-
$IMAGE_NAME
211-
- name: Screen Width 1280x1024 Test
212-
run: |
213-
podman run --shm-size=1g \
214-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
215-
-e BROWSER=$BROWSER \
216-
-e SCREEN_WIDTH=1280 \
217-
-e SCREEN_HEIGHT=1024 \
218-
$IMAGE_NAME
219-
- name: Screen Width 2560x1440 Test
220-
run: |
221-
podman run --shm-size=1g \
222-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
223-
-e BROWSER=$BROWSER \
224-
-e SCREEN_WIDTH=2560 \
225-
-e SCREEN_HEIGHT=1440 \
226-
$IMAGE_NAME
227-
- name: Screen Width 3840x2160 Test
228-
run: |
229-
podman run --shm-size=1g \
230-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
231-
-e BROWSER=$BROWSER \
232-
-e SCREEN_WIDTH=3840 \
233-
-e SCREEN_HEIGHT=2160 \
234-
$IMAGE_NAME
235-
- name: Debug Log Level Test
236-
run: |
237-
podman run --shm-size=1g \
238-
-v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \
239-
-e BROWSER=$BROWSER \
240-
-e ROBOT_OPTIONS="--loglevel DEBUG" \
241-
$IMAGE_NAME
242-
- name: Basic Multithreaded Test
243-
run: |
244-
podman run --shm-size=1g \
245-
-v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \
246-
-v `pwd`/test/requests.robot:/opt/robotframework/tests/requests.robot:Z \
247-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
248-
-v `pwd`/test/timezones.robot:/opt/robotframework/tests/timezones.robot:Z \
249-
-e BROWSER=$BROWSER \
250-
-e ROBOT_THREADS=4 \
251-
$IMAGE_NAME
252-
- name: Test Level Multithreaded Test
253-
run: |
254-
podman run --shm-size=1g \
255-
-v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \
256-
-v `pwd`/test/requests.robot:/opt/robotframework/tests/requests.robot:Z \
257-
-v `pwd`/test/selenium.robot:/opt/robotframework/tests/selenium.robot:Z \
258-
-v `pwd`/test/timezones.robot:/opt/robotframework/tests/timezones.robot:Z \
259-
-e BROWSER=$BROWSER \
260-
-e ROBOT_THREADS=4 \
261-
-e PABOT_OPTIONS="--testlevelsplit" \
262-
$IMAGE_NAME
263-
- name: Custom User Test
264-
run: |
265-
podman run --user=2000 --shm-size=1g \
266-
-v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \
267-
-e BROWSER=$BROWSER \
268-
$IMAGE_NAME
269-
- name: Custom User and Group Test
270-
run: |
271-
podman run --user=2000:2000 --shm-size=1g \
272-
-v `pwd`/test/faker.robot:/opt/robotframework/tests/faker.robot:Z \
273-
-e BROWSER=$BROWSER \
274-
$IMAGE_NAME
275-
- name: Datetime
276-
run: |
277-
podman run --user=2000:2000 --shm-size=1g \
278-
-v `pwd`/test/timezones.robot:/opt/robotframework/tests/timezones.robot:Z \
279-
-e BROWSER=$BROWSER \
280-
-e TZ="America/New_York" \
281-
$IMAGE_NAME

Dockerfile

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM fedora:39
1+
FROM fedora:40
22

33
MAINTAINER Paul Podgorsek <[email protected]>
44
LABEL description Robot Framework in Docker.
@@ -32,22 +32,22 @@ ENV ROBOT_UID 1000
3232
ENV ROBOT_GID 1000
3333

3434
# Dependency versions
35-
ENV AWS_CLI_VERSION 1.32.36
35+
ENV AWS_CLI_VERSION 1.33.23
3636
ENV AXE_SELENIUM_LIBRARY_VERSION 2.1.6
37-
ENV BROWSER_LIBRARY_VERSION 18.0.0
37+
ENV BROWSER_LIBRARY_VERSION 18.6.3
3838
ENV CHROME_VERSION 123.0.6312.122
39-
ENV DATABASE_LIBRARY_VERSION 1.4.3
40-
ENV DATADRIVER_VERSION 1.10.0
39+
ENV DATABASE_LIBRARY_VERSION 1.4.4
40+
ENV DATADRIVER_VERSION 1.11.2
4141
ENV DATETIMETZ_VERSION 1.0.6
42-
ENV MICROSOFT_EDGE_VERSION 121.0.2277.106
42+
ENV MICROSOFT_EDGE_VERSION 126.0.2592.87
4343
ENV FAKER_VERSION 5.0.0
44-
ENV FIREFOX_VERSION 125.0
44+
ENV FIREFOX_VERSION 128.0
4545
ENV FTP_LIBRARY_VERSION 1.9
4646
ENV GECKO_DRIVER_VERSION v0.33.0
4747
ENV IMAP_LIBRARY_VERSION 0.4.6
4848
ENV PABOT_VERSION 2.18.0
49-
ENV REQUESTS_VERSION 0.9.6
50-
ENV ROBOT_FRAMEWORK_VERSION 7.0
49+
ENV REQUESTS_VERSION 0.9.7
50+
ENV ROBOT_FRAMEWORK_VERSION 7.0.1
5151
ENV SELENIUM_LIBRARY_VERSION 6.2.0
5252
ENV SSH_LIBRARY_VERSION 3.8.0
5353
ENV XVFB_VERSION 1.20
@@ -64,16 +64,17 @@ COPY bin/run-tests-in-virtual-screen.sh /opt/robotframework/bin/
6464
RUN dnf upgrade -y --refresh \
6565
&& dnf install -y \
6666
dbus-glib \
67+
dnf-plugins-core \
6768
firefox-${FIREFOX_VERSION}* \
6869
gcc \
6970
gcc-c++ \
70-
npm \
7171
nodejs \
72+
npm \
7273
python3-pip \
7374
python3-pyyaml \
7475
tzdata \
76+
wget \
7577
xorg-x11-server-Xvfb-${XVFB_VERSION}* \
76-
dnf-plugins-core \
7778
&& dnf clean all
7879

7980
# Install Chrome for Testing with dependencies
@@ -123,26 +124,18 @@ RUN pip3 install \
123124
selenium==4.9.0
124125

125126
# Gecko drivers
126-
RUN dnf install -y \
127-
wget \
128-
129-
# Download Gecko drivers directly from the GitHub repository
130-
&& wget -q "https://github.com/mozilla/geckodriver/releases/download/$GECKO_DRIVER_VERSION/geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz" \
127+
# Download Gecko drivers directly from the GitHub repository
128+
RUN wget -q "https://github.com/mozilla/geckodriver/releases/download/$GECKO_DRIVER_VERSION/geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz" \
131129
&& tar xzf geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz \
132130
&& mkdir -p /opt/robotframework/drivers/ \
133131
&& mv geckodriver /opt/robotframework/drivers/geckodriver \
134-
&& rm geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz \
135-
136-
&& dnf remove -y \
137-
wget \
138-
&& dnf clean all
132+
&& rm geckodriver-$GECKO_DRIVER_VERSION-linux64.tar.gz
139133

140134
# Install Microsoft Edge & webdriver
141135
RUN rpm --import https://packages.microsoft.com/keys/microsoft.asc \
142136
&& dnf config-manager --add-repo https://packages.microsoft.com/yumrepos/edge \
143137
&& dnf install -y \
144138
microsoft-edge-stable-${MICROSOFT_EDGE_VERSION} \
145-
wget \
146139
zip \
147140

148141
&& wget -q "https://msedgedriver.azureedge.net/${MICROSOFT_EDGE_VERSION}/edgedriver_linux64.zip" \
@@ -158,7 +151,8 @@ RUN rpm --import https://packages.microsoft.com/keys/microsoft.asc \
158151
ENV PATH=/opt/microsoft/msedge:$PATH
159152

160153
# FIXME: Playright currently doesn't support relying on system browsers, which is why the `--skip-browsers` parameter cannot be used here.
161-
RUN rfbrowser init
154+
# Additionally, it cannot run fully on any OS due to https://github.com/microsoft/playwright/issues/29559
155+
RUN rfbrowser init chromium firefox
162156

163157
# Create the default report and work folders with the default user to avoid runtime issues
164158
# These folders are writeable by anyone, to ensure the user can be changed on the command line.

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,23 @@ The versioning of this image follows the one of Robot Framework:
4848

4949
The versions used are:
5050

51-
* [Robot Framework](https://github.com/robotframework/robotframework) 7.0
52-
* [Robot Framework Browser (Playwright) Library](https://github.com/MarketSquare/robotframework-browser) 18.0.0
53-
* [Robot Framework DatabaseLibrary](https://github.com/franz-see/Robotframework-Database-Library) 1.4.3
54-
* [Robot Framework Datadriver](https://github.com/Snooz82/robotframework-datadriver) 1.10.0
51+
* [Robot Framework](https://github.com/robotframework/robotframework) 7.0.1
52+
* [Robot Framework Browser (Playwright) Library](https://github.com/MarketSquare/robotframework-browser) 18.6.3
53+
* [Robot Framework DatabaseLibrary](https://github.com/franz-see/Robotframework-Database-Library) 1.4.4
54+
* [Robot Framework Datadriver](https://github.com/Snooz82/robotframework-datadriver) 1.11.2
5555
* [Robot Framework DateTimeTZ](https://github.com/testautomation/DateTimeTZ) 1.0.6
5656
* [Robot Framework Faker](https://github.com/guykisel/robotframework-faker) 5.0.0
5757
* [Robot Framework FTPLibrary](https://github.com/kowalpy/Robot-Framework-FTP-Library) 1.9
5858
* [Robot Framework IMAPLibrary 2](https://pypi.org/project/robotframework-imaplibrary2/) 0.4.6
5959
* [Robot Framework Pabot](https://github.com/mkorpela/pabot) 2.18.0
60-
* [Robot Framework Requests](https://github.com/bulkan/robotframework-requests) 0.9.6
60+
* [Robot Framework Requests](https://github.com/bulkan/robotframework-requests) 0.9.7
6161
* [Robot Framework SeleniumLibrary](https://github.com/robotframework/SeleniumLibrary) 6.2.0
6262
* [Robot Framework SSHLibrary](https://github.com/robotframework/SSHLibrary) 3.8.0
6363
* [Axe Selenium Library](https://github.com/mozilla-services/axe-selenium-python) 2.1.6
64-
* Firefox 124.0
64+
* Firefox 128.0
6565
* Chrome for Testing 123.0
66-
* Microsoft Edge 121.0.2277.106
67-
* [Amazon AWS CLI](https://pypi.org/project/awscli/) 1.32.36
66+
* Microsoft Edge 126.0.2592.87
67+
* [Amazon AWS CLI](https://pypi.org/project/awscli/) 1.33.23
6868

6969
As stated by [the official GitHub project](https://github.com/robotframework/Selenium2Library), starting from version 3.0, Selenium2Library is renamed to SeleniumLibrary and this project exists mainly to help with transitioning. The Selenium2Library 3.0.0 is also the last release and for new releases, please look at the [SeleniumLibrary](https://github.com/robotframework/SeleniumLibrary) project.
7070

test/browser-library.robot

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,25 @@ Library Browser
33

44
*** Variables ***
55
# There is a conflict between browser names used by Selenium (using "chrome") and Browser (using "chromium")
6-
# This is why the browser is currently fixed for the Browser Library.
6+
# Additionally, the Browser library isn't flexible at all and forbids any branded browser
7+
# See SupportedBrowsers: https://marketsquare.github.io/robotframework-browser/Browser.html#New%20Browser
78
${BROWSER} %{BROWSER}
89

910
*** Test Cases ***
1011
Visit Bing
11-
IF "${BROWSER}" == 'chrome'
12-
New Browser chromium
13-
ELSE
14-
New Browser ${BROWSER}
15-
END
12+
Run Keyword If "${BROWSER}" == 'chrome' or "${BROWSER}" == 'edge' New Browser chromium
13+
Run Keyword If "${BROWSER}" != 'chrome' and "${BROWSER}" != 'edge' New Browser browser=${BROWSER}
1614
New Page https://www.bing.com
1715
Take Screenshot
1816

1917
Visit Google
20-
IF "${BROWSER}" == 'chrome'
21-
New Browser chromium
22-
ELSE
23-
New Browser ${BROWSER}
24-
END
18+
Run Keyword If "${BROWSER}" == 'chrome' or "${BROWSER}" == 'edge' New Browser chromium
19+
Run Keyword If "${BROWSER}" != 'chrome' and "${BROWSER}" != 'edge' New Browser browser=${BROWSER}
2520
New Page https://www.google.com
2621
Take Screenshot
2722

2823
Visit Yahoo
29-
IF "${BROWSER}" == 'chrome'
30-
New Browser chromium
31-
ELSE
32-
New Browser ${BROWSER}
33-
END
24+
Run Keyword If "${BROWSER}" == 'chrome' or "${BROWSER}" == 'edge' New Browser chromium
25+
Run Keyword If "${BROWSER}" != 'chrome' and "${BROWSER}" != 'edge' New Browser browser=${BROWSER}
3426
New Page https://search.yahoo.com
3527
Take Screenshot

0 commit comments

Comments
 (0)