* Improve e2etests readme, remove unused apt install * Add testing E2E Tests MultiOS * Get rid of deprecation warning * Smart selection of docker network driver for different OSes * Unify makefile invocation for windows as well * Tune JVM for ES and Keycloak * fix: Made required changes to run locally on arm MacOS * fix: FIxed network command and removed dashboard node user as it is not needed * fix: make dashboard work for Mac * Make runs without dashboard work again, make BROWSE tunable and document it --------- Co-authored-by: Mattermost Build <build@mattermost.com> Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>
164 строки
5.4 KiB
YAML
164 строки
5.4 KiB
YAML
name: E2E Tests
|
|
on:
|
|
# For PRs, this workflow gets triggered from the Argo Events platform.
|
|
# Check the following repo for details: https://github.com/mattermost/delivery-platform
|
|
workflow_dispatch:
|
|
inputs:
|
|
commit_sha:
|
|
type: string
|
|
required: false
|
|
|
|
jobs:
|
|
update-initial-status:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: mattermost/actions/delivery/update-commit-status@main
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
with:
|
|
repository_full_name: ${{ github.repository }}
|
|
commit_sha: ${{ inputs.commit_sha || github.sha }}
|
|
context: E2E Tests/smoketests
|
|
description: E2E tests for mattermost server app
|
|
status: pending
|
|
|
|
cypress-check:
|
|
runs-on: ubuntu-22.04
|
|
needs:
|
|
- update-initial-status
|
|
defaults:
|
|
run:
|
|
working-directory: e2e-tests/cypress
|
|
steps:
|
|
- name: ci/checkout-repo
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
with:
|
|
ref: ${{ inputs.commit_sha || github.sha }}
|
|
- name: ci/setup-node
|
|
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
|
id: setup_node
|
|
with:
|
|
node-version-file: ".nvmrc"
|
|
cache: npm
|
|
cache-dependency-path: "e2e-tests/cypress/package-lock.json"
|
|
- name: ci/cypress/npm-install
|
|
run: |
|
|
npm ci
|
|
- name: ci/cypress/npm-check
|
|
run: |
|
|
npm run check
|
|
|
|
playwright-check:
|
|
runs-on: ubuntu-22.04
|
|
needs:
|
|
- update-initial-status
|
|
defaults:
|
|
run:
|
|
working-directory: e2e-tests/playwright
|
|
steps:
|
|
- name: ci/checkout-repo
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
with:
|
|
ref: ${{ inputs.commit_sha || github.sha }}
|
|
- name: ci/setup-node
|
|
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
|
|
id: setup_node
|
|
with:
|
|
node-version-file: ".nvmrc"
|
|
cache: npm
|
|
cache-dependency-path: "e2e-tests/playwright/package-lock.json"
|
|
- name: ci/get-webapp-node-modules
|
|
working-directory: webapp
|
|
# requires build of client and types
|
|
run: |
|
|
make node_modules
|
|
- name: ci/playwright/npm-install
|
|
run: |
|
|
npm ci
|
|
- name: ci/playwright/npm-check
|
|
run: |
|
|
npm run check
|
|
|
|
smoketests:
|
|
strategy:
|
|
matrix:
|
|
#
|
|
# Note that smoketests should be run only on ubuntu, for QA purposes.
|
|
# But it's useful to be able to run and debug the smoketests for different OSes.
|
|
# Notes:
|
|
# - For MacOS: works on developer machines, but uses too many resources to be able to run on Github Actions
|
|
# - for Windows: cannot currently run on Github Actions, since the runners do not support running linux containers, at the moment
|
|
#
|
|
#os: [ubuntu-latest-8-cores, windows-2022, macos-12-xl]
|
|
os: [ubuntu-latest-8-cores]
|
|
runs-on: "${{ matrix.os }}"
|
|
needs:
|
|
- cypress-check
|
|
- playwright-check
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: e2e-tests
|
|
steps:
|
|
- name: ci/checkout-repo
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
with:
|
|
ref: ${{ inputs.commit_sha || github.sha }}
|
|
- name: ci/setup-macos-docker
|
|
if: runner.os == 'macos'
|
|
# https://github.com/actions/runner-images/issues/17#issuecomment-1537238473
|
|
run: |
|
|
brew install docker docker-compose
|
|
colima start
|
|
mkdir -p ~/.docker/cli-plugins
|
|
ln -sfn /usr/local/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose
|
|
sudo ln -sf $HOME/.colima/default/docker.sock /var/run/docker.sock
|
|
- name: ci/e2e-smoketests
|
|
run: |
|
|
make
|
|
- name: ci/e2e-smoketests-store-results
|
|
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
|
|
with:
|
|
name: e2e-smoketests-results-${{ matrix.os }}
|
|
path: |
|
|
e2e-tests/cypress/logs/
|
|
e2e-tests/cypress/results/
|
|
- name: ci/e2e-smoketests-assert-results
|
|
run: |
|
|
# Assert that the run contained 0 failures
|
|
CYPRESS_FAILURES=$(find cypress/results -name '*.json' | xargs -l jq -r '.stats.failures' | jq -s add)
|
|
echo "Cypress run completed with $CYPRESS_FAILURES failures"
|
|
[ "$CYPRESS_FAILURES" = "0" ]
|
|
|
|
update-failure-final-status:
|
|
runs-on: ubuntu-22.04
|
|
if: failure() || cancelled()
|
|
needs:
|
|
- smoketests
|
|
steps:
|
|
- uses: mattermost/actions/delivery/update-commit-status@main
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
with:
|
|
repository_full_name: ${{ github.repository }}
|
|
commit_sha: ${{ inputs.commit_sha || github.sha }}
|
|
context: E2E Tests/smoketests
|
|
description: E2E tests for mattermost server app
|
|
status: failure
|
|
|
|
update-success-final-status:
|
|
runs-on: ubuntu-22.04
|
|
if: success()
|
|
needs:
|
|
- smoketests
|
|
steps:
|
|
- uses: mattermost/actions/delivery/update-commit-status@main
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
with:
|
|
repository_full_name: ${{ github.repository }}
|
|
commit_sha: ${{ inputs.commit_sha || github.sha }}
|
|
context: E2E Tests/smoketests
|
|
description: E2E tests for mattermost server app
|
|
status: success
|