v0.93.0 #3643
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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: edge | |
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, webkit-1-2, webkit-2-2] | |
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-chromium-1.zip all-blob-reports/chromium-1-1.zip | |
mv playwright-report-blob-firefox-1-1/report-firefox-1.zip all-blob-reports/firefox-1-1.zip | |
mv playwright-report-blob-webkit-1-2/report-webkit-1.zip all-blob-reports/webkit-1-2.zip | |
mv playwright-report-blob-webkit-2-2/report-webkit-2.zip all-blob-reports/webkit-2-2.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') }} |