Skip to content

Selenium Work flow enhancements #4065

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 49 commits into
base: development
Choose a base branch
from
Draft
Changes from 2 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
ec50ef0
fix(workflow): make 'network' input a choice type for workflow_dispatch
khaledyoussef24 Apr 22, 2025
6c4fc38
adding branch choosing and making lerna only runs on local
khaledyoussef24 Apr 23, 2025
6c76dd6
adding workflow to be build on any network or to run on the current n…
khaledyoussef24 May 5, 2025
eb49c47
removing local from choices
khaledyoussef24 May 6, 2025
bee5702
fixing checkout
khaledyoussef24 May 6, 2025
20ba723
fixing checkout
khaledyoussef24 May 6, 2025
d13f8c8
fixing checkout
khaledyoussef24 May 6, 2025
aa1e941
fixing confest.py
khaledyoussef24 May 6, 2025
0a3ce83
fixing workflow link
khaledyoussef24 May 6, 2025
49c7eb6
fixing workflow link
khaledyoussef24 May 6, 2025
4499676
fixing workflow link
khaledyoussef24 May 6, 2025
2b5a8c3
fixing workflow link
khaledyoussef24 May 7, 2025
5a7b0c9
fixing url work flow
khaledyoussef24 May 8, 2025
ffb01f6
fixing url work flow
khaledyoussef24 May 8, 2025
249b528
fixing url work flow
khaledyoussef24 May 8, 2025
7d9a2a9
trial 1
khaledyoussef24 May 8, 2025
01b1d7f
trial
khaledyoussef24 May 8, 2025
02ec2c1
Merge remote-tracking branch 'origin' into development_selenium_workf…
khaledyoussef24 May 8, 2025
e433efc
trial
khaledyoussef24 May 8, 2025
866d15d
trial
khaledyoussef24 May 8, 2025
a852a3d
trial
khaledyoussef24 May 8, 2025
eca183b
trial
khaledyoussef24 May 8, 2025
d313e5f
trial
khaledyoussef24 May 8, 2025
52e4a30
checking
khaledyoussef24 May 8, 2025
d57645b
trying remote
khaledyoussef24 May 8, 2025
b84de32
trying remote
khaledyoussef24 May 8, 2025
6c5b3f3
trying remote
khaledyoussef24 May 8, 2025
d3dac8c
step1
khaledyoussef24 May 11, 2025
e5bd3e4
step2
khaledyoussef24 May 11, 2025
c4a0be9
step3
khaledyoussef24 May 11, 2025
9bf7a40
trial 2 step 1
khaledyoussef24 May 11, 2025
cbf78ea
trial 2 step 2
khaledyoussef24 May 11, 2025
169a685
startegy 2
khaledyoussef24 May 15, 2025
f3a82e5
startegy 2 update 1
khaledyoussef24 May 15, 2025
076c6f1
startegy 2 update 2
khaledyoussef24 May 15, 2025
77e12e5
startegy 2 update 3
khaledyoussef24 May 15, 2025
8fd7e10
startegy 2 update 4
khaledyoussef24 May 15, 2025
9dae3e2
startegy 2 update 5
khaledyoussef24 May 15, 2025
668942f
startegy 2 update 6
khaledyoussef24 May 15, 2025
b4f0fd0
startegy 2 update 9
khaledyoussef24 May 15, 2025
1ebf141
fixing work flow uses
khaledyoussef24 May 15, 2025
430fa6c
fixing the priniting of the seed
khaledyoussef24 May 15, 2025
7632715
fixing the priniting of the seed
khaledyoussef24 May 15, 2025
0ab59b3
fixing the priniting of the seed
khaledyoussef24 May 15, 2025
6b6ba4e
Merge remote-tracking branch 'origin' into development_selenium_workf…
khaledyoussef24 May 15, 2025
da31eb2
Merge branch 'development' of https://github.com/threefoldtech/tfgrid…
khaledyoussef24 May 15, 2025
6c91ead
fixing seeds field
khaledyoussef24 May 15, 2025
dcf3ca8
fixing seeds field
khaledyoussef24 May 15, 2025
2321878
fixing seeds field
khaledyoussef24 May 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 53 additions & 14 deletions .github/workflows/playground_selenium.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,77 @@ name: Playground Selenium Tests

on:
workflow_dispatch:
inputs:
branch:
description: "Select which Git branch to run against"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets unify our messages and use the same message like grid nigtly
"Use workflow from"

required: true
default: "development"
network:
description: "Select the target environment"
required: true
type: choice
default: "dev"
options:
- local
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The local option will run the dashboard server on which network?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will do a local lerna build and run locally;
and this was the originally daily night run.
but i think we don't need it anymore and better to run nightly run on staging.
what do you think ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, but it's not a network cause the local server could run against dev, qa, test, and main nets. Also, the branch option will only run the tests from this branch, but the source code will be based on the deployed website. So IMO, we should always run the server locally with the preferred network.

here is the guide to switch the network https://github.com/threefoldtech/tfgrid-sdk-ts/blob/development/packages/playground/docs/build.md#run-the-script

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what we can do is
keep the default nightly run install the server locally to have the same branch.

but for other networks don't see the point of that;
we can use the tests from any branch to run against any network release,
this will help us more in release actually.

but will keep your point only for nightly run on local build.

- dev
- qa
- test
- main
schedule:
- cron: "0 6 * * *"

jobs:
selenium-run:
runs-on: ubuntu-latest
env:
NETWORK: ${{ github.event.inputs.network }}

steps:
- name: Checkout
- name: Checkout repository
uses: actions/checkout@v4
- name: Setting up Python
with:
ref: ${{ github.event.inputs.branch }}

- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Installing all necessary packages
run: pip install -r packages/playground/tests/frontend_selenium/requirements.txt
- name: Node install

- name: Install Python dependencies
run: |
pip install -r packages/playground/tests/frontend_selenium/requirements.txt
pip install pytest-html

- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: 18
- name: Yarn install
run: yarn install
- name: Lerna Build
run: yarn lerna run build
- name: Yarn Serve
node-version: "18"

- name: Install JS dependencies & build
if: ${{ github.event.inputs.network == 'local' }}
run: |
yarn install
yarn lerna run build

- name: Start playground server
run: make run project=playground &
- name: Wait for localhost

- name: Wait for server to be ready
run: sleep 60
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All these steps for running the local server, and only the install step has the condition if: ${{ github.event.inputs.network == 'local' }}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes these steps are needed only for launch the dashboard locally; instead of this in all other network we just use the dashboard URL.

Copy link
Contributor

@ramezsaeed ramezsaeed Apr 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed with Hanafy and Team; to add a flag to be used if want a local build against any specific network, and by default the nightly workflow will run against staging env.

- name: Run tests

- name: Run Selenium tests
working-directory: ./packages/playground/tests/frontend_selenium
env:
TFCHAIN_MNEMONICS: ${{ secrets.TFCHAIN_MNEMONICS }}
TFCHAIN_NODE_MNEMONICS: ${{ secrets.TFCHAIN_NODE_MNEMONICS }}
STELLAR_ADDRESS: ${{ secrets.STELLAR_ADDRESS }}
EMAIL: ${{ secrets.EMAIL }}
run: python -m pytest -v
NETWORK: ${{ env.NETWORK }}
run: |
python -m pytest -v --html=report.html

- name: Upload HTML report
uses: actions/upload-artifact@v3
with:
name: selenium-report-${{ env.NETWORK }}
path: packages/playground/tests/frontend_selenium/report.html
Loading