Skip to content
Merged
8 changes: 7 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ jobs:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
test_type: [dashboard, onboarding]

Expand Down Expand Up @@ -338,6 +339,11 @@ jobs:
working-directory: /opt/countly/ui-tests/cypress
run: |
ARTIFACT_ARCHIVE_NAME="$(date '+%Y%m%d-%H.%M')_${GITHUB_REPOSITORY#*/}_CI#${{ github.run_number }}_${{ matrix.test_type }}.tar.gz"

mkdir -p screenshots videos downloads
tar zcvf "$ARTIFACT_ARCHIVE_NAME" screenshots videos downloads
find screenshots videos downloads -type d -empty -delete

TAR_TARGETS=$(ls -d screenshots videos downloads 2>/dev/null || true)

tar zcvf "$ARTIFACT_ARCHIVE_NAME" $TAR_TARGETS
curl -o /tmp/uploader.log -u "${{ secrets.BOX_UPLOAD_AUTH }}" ${{ secrets.BOX_UPLOAD_PATH }} -T "$ARTIFACT_ARCHIVE_NAME"
37 changes: 32 additions & 5 deletions ui-tests/cypress.config.sample.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const { defineConfig } = require("cypress");
const fs = require("fs");
const path = require("path");
const pdfjsLib = require("pdfjs-dist/legacy/build/pdf.js");
const { PNG } = require("pngjs");
const sharp = require("sharp");
Expand Down Expand Up @@ -124,14 +125,40 @@ module.exports = defineConfig({
});

on("after:spec", (spec, results) => {
if (results?.video) {
const hasFailures = results.tests.some((t) => t.attempts.some((a) => a.state === "failed"));
if (!hasFailures && fs.existsSync(results.video)) {
fs.unlinkSync(results.video);
}
const hasFailures = results?.tests?.some((t) =>
t.attempts.some((a) => a.state === "failed")
);

if (!hasFailures && results?.video && fs.existsSync(results.video)) {
fs.unlinkSync(results.video);
}
});

on("after:run", () => {
const folders = [config.videosFolder, config.screenshotsFolder];

folders.forEach((folder) => {
if (!fs.existsSync(folder)) {
return; // folder yoksa skip
}

fs.readdirSync(folder).forEach((entry) => {
const fullPath = path.join(folder, entry);

if (!fs.existsSync(fullPath)) {
return;
}

if (fs.statSync(fullPath).isDirectory()) {
const content = fs.readdirSync(fullPath);
if (content.length === 0) {
fs.rmSync(fullPath, { recursive: true, force: true });
}
}
});
});
});

on("before:browser:launch", (browser, launchOptions) => {
if (["chrome", "edge", "electron"].includes(browser.name)) {
if (browser.isHeadless) {
Expand Down
Loading