Skip to content

build: Fix e2e tests for builds on v0.78 #3879

build: Fix e2e tests for builds on v0.78

build: Fix e2e tests for builds on v0.78 #3879

Workflow file for this run

# This workflow will do a production build of the application, and test it end-to-end with the latest Deephaven Core server.
name: Build and End-to-end Tests
on:
push:
branches:
- main
- 'release/**'
- 'feature/**'
pull_request:
branches:
- main
- 'release/**'
- 'feature/**'
env:
DHC_VERSION: 0.35.2
jobs:
build:
runs-on: ubuntu-22.04
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-build
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build and Save docker image
run: |
docker build -t e2e-ci:test -f ./tests/docker-scripts/Dockerfile .
docker save e2e-ci -o e2e-ci.tar.gz
- name: Store docker build for test matrix
uses: actions/upload-artifact@v4
with:
name: image-cache
path: e2e-ci.tar.gz
retention-days: 1
e2e-tests:
runs-on: ubuntu-22.04
needs: build
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-e2e-tests-${{ matrix.config }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
config: [chromium-1-1, firefox-1-1]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download docker image for test matrix
uses: actions/download-artifact@v4
with:
name: image-cache
- name: Load docker image
run: docker load -i e2e-ci.tar.gz
- name: Extract browser config
id: config
env:
MATRIX_CONFIG: ${{ matrix.config }}
run: |
echo "BROWSER=${MATRIX_CONFIG:0:-4}" >> $GITHUB_ENV
echo "SHARD=${MATRIX_CONFIG: -3:1}" >> $GITHUB_ENV
echo "SHARD_TOTAL=${MATRIX_CONFIG: -1:1}" >> $GITHUB_ENV
- name: Run tests
run: './tests/docker-scripts/run.sh e2e-ci-matrix'
- name: Upload Playwright report
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report-blob-${{ matrix.config }}
path: blob-report/
retention-days: 1
- name: Dump server logs
if: failure()
run: docker logs dhc-server > /tmp/server-log.txt
- name: Upload server logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: server-logs-${{ matrix.config }}
path: /tmp/server-log.txt
retention-days: 14
merge-reports:
if: ${{ !cancelled() }}
runs-on: ubuntu-22.04
needs: [e2e-tests]
steps:
- name: Download blob reports from GitHub Actions Artifacts
uses: actions/download-artifact@v4
with:
pattern: playwright-report-blob-*
- name: Merge into HTML Report
run: |
mkdir -p all-blob-reports
mv playwright-report-blob-chromium-1-1/report-1.zip all-blob-reports/chromium-1-1.zip
mv playwright-report-blob-firefox-1-1/report-1.zip all-blob-reports/firefox-1-1.zip
npx playwright merge-reports --reporter html,github ./all-blob-reports
- name: Upload HTML report
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report
retention-days: 30
e2e-results:
if: ${{ always() }}
runs-on: ubuntu-22.04
needs: [e2e-tests]
steps:
- name: Fail if any tests failed or cancelled
run: exit 1
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}