mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-05 16:10:43 +00:00
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new suite of UI tests for a logging application, enhancing testing coverage. - Added functionality to automate user login and data ingestion processes within the tests. - Implemented a test case to toggle settings and verify UI interactions. - **Bug Fixes** - Expanded the test file list to include additional scenarios for more comprehensive testing. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
132 lines
3.7 KiB
YAML
132 lines
3.7 KiB
YAML
name: Playwright UI Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- "main"
|
|
# paths:
|
|
# - "web/**"
|
|
pull_request:
|
|
branches:
|
|
- "*"
|
|
# paths:
|
|
# - "web/**"
|
|
|
|
env:
|
|
COLUMNS: 150
|
|
ZO_ROOT_USER_EMAIL: root@example.com
|
|
ZO_ROOT_USER_PASSWORD: Complexpass#123
|
|
ZO_BASE_URL: http://localhost:5080
|
|
INGESTION_URL: http://localhost:5080
|
|
ORGNAME: default
|
|
ZO_QUICK_MODE_NUM_FIELDS: 5
|
|
ZO_QUICK_MODE_STRATEGY : first
|
|
ZO_ALLOW_USER_DEFINED_SCHEMAS: true
|
|
ZO_INGEST_ALLOWED_UPTO: 5
|
|
ZO_FEATURE_QUERY_EXCLUDE_ALL: false
|
|
|
|
|
|
jobs:
|
|
build_binary:
|
|
name: build_binary
|
|
runs-on:
|
|
labels: ubicloud-standard-8
|
|
|
|
steps:
|
|
- name: Remove unused tools
|
|
run: |
|
|
sudo rm -rf /usr/share/dotnet
|
|
sudo rm -rf /opt/ghc
|
|
sudo rm -rf "/usr/local/share/boost"
|
|
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
|
|
|
- name: Clone the current repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Rust Toolchain
|
|
uses: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: nightly-2024-07-07
|
|
targets: x86_64-unknown-linux-gnu
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
cache-on-failure: true
|
|
- name: Install Protoc
|
|
uses: arduino/setup-protoc@v3
|
|
with:
|
|
version: "21.12"
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 18
|
|
|
|
- name: Build frontend code
|
|
run: cd web && npm install && npm run build
|
|
|
|
- name: Build and run binary
|
|
run: cargo build --release --target x86_64-unknown-linux-gnu
|
|
|
|
- name: Upload artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: debug-binary
|
|
path: target/x86_64-unknown-linux-gnu/release/openobserve
|
|
retention-days: 1
|
|
|
|
ui_integration_tests:
|
|
name: playwright_ui_integration_tests
|
|
needs: [build_binary]
|
|
runs-on:
|
|
labels: ubuntu-latest
|
|
container:
|
|
image: mcr.microsoft.com/playwright:v1.42.1-jammy
|
|
options: --user root
|
|
strategy:
|
|
matrix:
|
|
browser: [chrome]
|
|
testfilename:
|
|
["sanity.spec.js", "alerts.spec.js", "schema.spec.js", "logspage.spec.js", "logsqueries.spec.js", "logsquickmode.spec.js", "multiselect-stream.spec.js", "pipeline.spec.js", "dashboardtype.spec.js", "dashboard.spec.js", "visualize.spec.js", "unflattened.spec.js"]
|
|
|
|
steps:
|
|
- name: Clone the current repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Download artifacts
|
|
uses: actions/download-artifact@v4
|
|
|
|
- name: Display structure of downloaded files
|
|
run: ls -la .
|
|
|
|
- name: Start OpenObserve
|
|
run: chmod +x ./debug-binary/openobserve && ./debug-binary/openobserve > o2.log 2>&1 &
|
|
|
|
- name: Wait for start
|
|
run: sleep 15
|
|
|
|
- name: Ensure we are getting a reply from the server
|
|
run: curl http://localhost:5080/web/login
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: lts/*
|
|
- name: Install dependencies and run ui-tests
|
|
run: |
|
|
touch .env
|
|
echo "ZO_ROOT_USER_EMAIL=${ZO_ROOT_USER_EMAIL}" >> .env
|
|
echo "ZO_ROOT_USER_PASSWORD=${ZO_ROOT_USER_PASSWORD}" >> .env
|
|
echo "ZO_BASE_URL=${ZO_BASE_URL}" >> .env
|
|
echo "INGESTION_URL=${INGESTION_URL}" >> .env
|
|
echo "ORGNAME=${ORGNAME}" >> .env
|
|
mv .env tests/ui-testing
|
|
cd tests/ui-testing && npm ci && npx playwright test ./playwright-tests/${{ matrix.testfilename }}
|
|
|
|
# - name: Check OpenObserve logs
|
|
# if: always()
|
|
# run: cat o2.log
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: playwright-report
|
|
path: playwright-report/
|
|
retention-days: 30
|