diff --git a/.github/workflows/cypress.yaml b/.github/workflows/cypress.yaml
index a76c00918b..57e6a7837e 100644
--- a/.github/workflows/cypress.yaml
+++ b/.github/workflows/cypress.yaml
@@ -155,17 +155,6 @@ jobs:
cypress/videos
cypress/synapselogs
- - run: mv cypress/performance/*.json cypress/performance/measurements-${{ strategy.job-index }}.json
- continue-on-error: true
-
- - name: Upload Benchmark
- uses: actions/upload-artifact@v2
- with:
- name: cypress-benchmark
- path: cypress/performance/*
- if-no-files-found: ignore
- retention-days: 1
-
report:
name: Report results
needs: tests
@@ -181,36 +170,3 @@ jobs:
context: ${{ github.workflow }} / cypress (${{ github.event.workflow_run.event }} => ${{ github.event_name }})
sha: ${{ github.event.workflow_run.head_sha }}
target_url: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
-
- store-benchmark:
- needs: tests
- runs-on: ubuntu-latest
- if: |
- github.event.workflow_run.event != 'pull_request' &&
- github.event.workflow_run.head_branch == 'develop' &&
- github.event.workflow_run.head_repository.full_name == github.repository
- permissions:
- contents: write
- steps:
- - uses: actions/checkout@v2
-
- - name: Download benchmark result
- uses: actions/download-artifact@v3
- with:
- name: cypress-benchmark
-
- - name: Merge measurements
- run: jq -s add measurements-*.json > measurements.json
-
- - name: Store benchmark result
- uses: matrix-org/github-action-benchmark@jsperfentry-6
- with:
- name: Cypress measurements
- tool: 'jsperformanceentry'
- output-file-path: measurements.json
- # The dashboard is available at https://matrix-org.github.io/matrix-react-sdk/cypress/bench/
- benchmark-data-dir-path: cypress/bench
- fail-on-alert: false
- comment-on-alert: false
- github-token: ${{ secrets.GITHUB_TOKEN }}
- auto-push: ${{ github.event.workflow_run.event != 'pull_request' }}
diff --git a/cypress/e2e/create-room/create-room.spec.ts b/cypress/e2e/create-room/create-room.spec.ts
index deac0728e3..1217c917b6 100644
--- a/cypress/e2e/create-room/create-room.spec.ts
+++ b/cypress/e2e/create-room/create-room.spec.ts
@@ -54,12 +54,10 @@ describe("Create Room", () => {
// Fill room address
cy.get('[label="Room address"]').type("test-room-1");
// Submit
- cy.startMeasuring("from-submit-to-room");
cy.get(".mx_Dialog_primary").click();
});
cy.url().should("contain", "/#/room/#test-room-1:localhost");
- cy.stopMeasuring("from-submit-to-room");
cy.contains(".mx_RoomHeader_nametext", name);
cy.contains(".mx_RoomHeader_topic", topic);
});
diff --git a/cypress/e2e/login/login.spec.ts b/cypress/e2e/login/login.spec.ts
index ff963dfbfe..1058287010 100644
--- a/cypress/e2e/login/login.spec.ts
+++ b/cypress/e2e/login/login.spec.ts
@@ -52,11 +52,9 @@ describe("Login", () => {
cy.get("#mx_LoginForm_username").type(username);
cy.get("#mx_LoginForm_password").type(password);
- cy.startMeasuring("from-submit-to-home");
cy.get(".mx_Login_submit").click();
cy.url().should('contain', '/#/home', { timeout: 30000 });
- cy.stopMeasuring("from-submit-to-home");
});
});
diff --git a/cypress/e2e/register/register.spec.ts b/cypress/e2e/register/register.spec.ts
index 1945eb7fec..98ef2bd729 100644
--- a/cypress/e2e/register/register.spec.ts
+++ b/cypress/e2e/register/register.spec.ts
@@ -55,7 +55,6 @@ describe("Registration", () => {
cy.get("#mx_RegistrationForm_username").type("alice");
cy.get("#mx_RegistrationForm_password").type("totally a great password");
cy.get("#mx_RegistrationForm_passwordConfirm").type("totally a great password");
- cy.startMeasuring("create-account");
cy.get(".mx_Login_submit").click();
cy.get(".mx_RegistrationEmailPromptDialog").should("be.visible");
@@ -63,13 +62,11 @@ describe("Registration", () => {
cy.checkA11y();
cy.get(".mx_RegistrationEmailPromptDialog button.mx_Dialog_primary").click();
- cy.stopMeasuring("create-account");
cy.get(".mx_InteractiveAuthEntryComponents_termsPolicy").should("be.visible");
cy.percySnapshot("Registration terms prompt", { percyCSS });
cy.checkA11y();
cy.get(".mx_InteractiveAuthEntryComponents_termsPolicy input").click();
- cy.startMeasuring("from-submit-to-home");
cy.get(".mx_InteractiveAuthEntryComponents_termsSubmit").click();
cy.get(".mx_UseCaseSelection_skip", { timeout: 30000 }).should("exist");
@@ -78,7 +75,6 @@ describe("Registration", () => {
cy.get(".mx_UseCaseSelection_skip .mx_AccessibleButton").click();
cy.url().should('contain', '/#/home');
- cy.stopMeasuring("from-submit-to-home");
cy.get('[aria-label="User menu"]').click();
cy.get('[aria-label="Security & Privacy"]').click();
diff --git a/cypress/plugins/index.ts b/cypress/plugins/index.ts
index 09b2bdb53b..ce154ee0bc 100644
--- a/cypress/plugins/index.ts
+++ b/cypress/plugins/index.ts
@@ -18,7 +18,6 @@ limitations under the License.
import PluginEvents = Cypress.PluginEvents;
import PluginConfigOptions = Cypress.PluginConfigOptions;
-import { performance } from "./performance";
import { synapseDocker } from "./synapsedocker";
import { slidingSyncProxyDocker } from "./sliding-sync";
import { webserver } from "./webserver";
@@ -30,7 +29,6 @@ import { log } from "./log";
*/
export default function(on: PluginEvents, config: PluginConfigOptions) {
docker(on, config);
- performance(on, config);
synapseDocker(on, config);
slidingSyncProxyDocker(on, config);
webserver(on, config);
diff --git a/cypress/plugins/performance.ts b/cypress/plugins/performance.ts
deleted file mode 100644
index c6bd3e4ce9..0000000000
--- a/cypress/plugins/performance.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-Copyright 2022 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-///
-
-import * as path from "path";
-import * as fse from "fs-extra";
-
-import PluginEvents = Cypress.PluginEvents;
-import PluginConfigOptions = Cypress.PluginConfigOptions;
-
-// This holds all the performance measurements throughout the run
-let bufferedMeasurements: PerformanceEntry[] = [];
-
-function addMeasurements(measurements: PerformanceEntry[]): void {
- bufferedMeasurements = bufferedMeasurements.concat(measurements);
- return null;
-}
-
-async function writeMeasurementsFile() {
- try {
- const measurementsPath = path.join("cypress", "performance", "measurements.json");
- await fse.outputJSON(measurementsPath, bufferedMeasurements, {
- spaces: 4,
- });
- } finally {
- bufferedMeasurements = [];
- }
-}
-
-export function performance(on: PluginEvents, config: PluginConfigOptions) {
- on("task", { addMeasurements });
- on("after:run", writeMeasurementsFile);
-}
diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts
index 899d41c5b8..4470c2192e 100644
--- a/cypress/support/e2e.ts
+++ b/cypress/support/e2e.ts
@@ -19,7 +19,6 @@ limitations under the License.
import "@percy/cypress";
import "cypress-real-events";
-import "./performance";
import "./synapse";
import "./login";
import "./labs";
diff --git a/cypress/support/performance.ts b/cypress/support/performance.ts
deleted file mode 100644
index bbd1fe217d..0000000000
--- a/cypress/support/performance.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-Copyright 2022 The Matrix.org Foundation C.I.C.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-///
-
-import Chainable = Cypress.Chainable;
-import AUTWindow = Cypress.AUTWindow;
-
-declare global {
- // eslint-disable-next-line @typescript-eslint/no-namespace
- namespace Cypress {
- interface Chainable {
- /**
- * Start measuring the duration of some task.
- * @param task The task name.
- */
- startMeasuring(task: string): Chainable;
- /**
- * Stop measuring the duration of some task.
- * The duration is reported in the Cypress log.
- * @param task The task name.
- */
- stopMeasuring(task: string): Chainable;
- }
- }
-}
-
-function getPrefix(task: string): string {
- return `cy:${Cypress.spec.name.split(".")[0]}:${task}`;
-}
-
-function startMeasuring(task: string): Chainable {
- return cy.window({ log: false }).then((win) => {
- win.mxPerformanceMonitor.start(getPrefix(task));
- });
-}
-
-function stopMeasuring(task: string): Chainable {
- return cy.window({ log: false }).then((win) => {
- const measure = win.mxPerformanceMonitor.stop(getPrefix(task));
- cy.log(`**${task}** ${measure.duration} ms`);
- });
-}
-
-Cypress.Commands.add("startMeasuring", startMeasuring);
-Cypress.Commands.add("stopMeasuring", stopMeasuring);
-
-Cypress.on("window:before:unload", (event: BeforeUnloadEvent) => {
- const doc = event.target as Document;
- if (doc.location.href === "about:blank") return;
- const win = doc.defaultView as AUTWindow;
- if (!win.mxPerformanceMonitor) return;
- const entries = win.mxPerformanceMonitor.getEntries().filter(entry => {
- return entry.name.startsWith("cy:");
- });
- if (!entries || entries.length === 0) return;
- cy.task("addMeasurements", entries);
-});
-
-// Needed to make this file a module
-export { };