mirror of
https://github.com/wekan/wekan.git
synced 2025-12-18 00:10:13 +01:00
commit
0b91a115ba
1 changed files with 120 additions and 0 deletions
120
.github/workflows/e2e-testing.yml
vendored
120
.github/workflows/e2e-testing.yml
vendored
|
|
@ -198,3 +198,123 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
pytest --maxfail=5 --disable-warnings -v
|
pytest --maxfail=5 --disable-warnings -v
|
||||||
|
|
||||||
|
Selenium-ui-test:
|
||||||
|
needs: deploy
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
browser: [chrome, firefox]
|
||||||
|
resolution:
|
||||||
|
- { name: "desktop", width: 1920, height: 1080 }
|
||||||
|
- { name: "tablet", width: 1024, height: 768 }
|
||||||
|
- { name: "mobile", width: 375, height: 667 }
|
||||||
|
fail-fast: false # Continue other jobs even if one fails
|
||||||
|
|
||||||
|
name: Test ${{ matrix.browser }} - ${{ matrix.resolution.name }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
respository: omriza5/wekan-selenium
|
||||||
|
token: ${{ secrets.UI_TESTING_GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up Python 3.11
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: "3.11"
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
- name: Install Chrome and ChromeDriver
|
||||||
|
if: matrix.browser == 'chrome'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y google-chrome-stable
|
||||||
|
|
||||||
|
- name: Install Firefox and GeckoDriver
|
||||||
|
if: matrix.browser == 'firefox'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y wget tar
|
||||||
|
# Remove Snap Firefox if installed
|
||||||
|
sudo snap remove firefox || true
|
||||||
|
# Download official Firefox
|
||||||
|
wget -O firefox.tar.xz "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US"
|
||||||
|
tar xJf firefox.tar.xz
|
||||||
|
sudo mv firefox /opt/firefox
|
||||||
|
sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox
|
||||||
|
# Install GeckoDriver
|
||||||
|
wget https://github.com/mozilla/geckodriver/releases/latest/download/geckodriver-v0.36.0-linux64.tar.gz
|
||||||
|
tar -xvzf geckodriver-v0.36.0-linux64.tar.gz
|
||||||
|
sudo mv geckodriver /usr/local/bin/
|
||||||
|
sudo chmod +x /usr/local/bin/geckodriver
|
||||||
|
|
||||||
|
- name: Run Selenium tests
|
||||||
|
env:
|
||||||
|
HEADLESS: true
|
||||||
|
BROWSER: ${{ matrix.browser }}
|
||||||
|
SCREEN_WIDTH: ${{ matrix.resolution.width }}
|
||||||
|
SCREEN_HEIGHT: ${{ matrix.resolution.height }}
|
||||||
|
WEKAN_URL: ${{ secrets.WEKAN_URL }}
|
||||||
|
|
||||||
|
run: |
|
||||||
|
if [ -d "allure-results" ]; then rm -rf allure-results; fi
|
||||||
|
mkdir -p allure-results
|
||||||
|
|
||||||
|
cat > allure-results/environment.properties << EOF
|
||||||
|
os_platform=$(uname -s)
|
||||||
|
os_release=$(lsb_release -r | awk '{print $2}')
|
||||||
|
os_version=$(lsb_release -c | awk '{print $2}')
|
||||||
|
python_version=$(python --version | awk '{print $2}')
|
||||||
|
Wekan.URL=http://${{ secrets.WEKAN_EC2_HOST_IP }}/
|
||||||
|
Headless.Mode=true
|
||||||
|
Wekan.Image=omriza5/wekan:${{ needs.deploy.outputs.wekan_image_tag }}
|
||||||
|
EOF
|
||||||
|
pytest --alluredir=allure-results tests/
|
||||||
|
|
||||||
|
allure-report:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: selenium-matrix-tests
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Download all Allure results
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
pattern: allure-results-*
|
||||||
|
path: allure-results-downloaded
|
||||||
|
merge-multiple: false
|
||||||
|
|
||||||
|
- name: Merge all results into single directory
|
||||||
|
run: |
|
||||||
|
mkdir -p allure-results
|
||||||
|
for dir in allure-results-downloaded/*/; do
|
||||||
|
if [ -d "$dir" ]; then
|
||||||
|
cp -r "$dir"* allure-results/ 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Generate and Deploy Allure Report
|
||||||
|
uses: simple-elf/allure-report-action@master
|
||||||
|
with:
|
||||||
|
allure_results: allure-results
|
||||||
|
allure_report: allure-report
|
||||||
|
gh_pages: gh-pages
|
||||||
|
allure_history: allure-history
|
||||||
|
keep_reports: 20
|
||||||
|
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.UI_TESTING_GITHUB_TOKEN }}
|
||||||
|
publish_dir: allure-history
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue