Compare commits

...

8 Commits

Author SHA1 Message Date
Louis Lam
cb26b79498 Testing 2024-10-26 19:46:44 +08:00
Louis Lam
dd5347b25e Change e2e-test to run on e2e runners 2024-10-26 19:37:09 +08:00
Louis Lam
733ce8ded5 Testing 2024-10-26 19:26:04 +08:00
Louis Lam
16225acdbd Testing 2024-10-26 19:18:40 +08:00
Louis Lam
5dce44277f Testing 2024-10-26 19:03:42 +08:00
Louis Lam
c19eef9e04 Testing 2024-10-26 19:00:36 +08:00
Louis Lam
9befdd70cc wip 2024-10-26 16:26:10 +08:00
Louis Lam
8aebfd82d8 wip 2024-10-26 16:25:05 +08:00
5 changed files with 50 additions and 4 deletions

View File

@@ -22,7 +22,7 @@ jobs:
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest, ARM64]
node: [ 18, 20 ]
node: [ 18, 20, 22 ]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
@@ -78,7 +78,7 @@ jobs:
e2e-test:
needs: [ ]
runs-on: ARM64
runs-on: e2e
steps:
- run: git config --global core.autocrlf false # Mainly for Windows
- uses: actions/checkout@v4

View File

@@ -1,5 +1,5 @@
# If the image changed, the second stage image should be changed too
FROM node:20-bookworm-slim AS base2-slim
FROM node:22-bookworm-slim AS base2-slim
ARG TARGETPLATFORM
# Specify --no-install-recommends to skip unused dependencies, make the base much smaller!

View File

@@ -0,0 +1,32 @@
// Go to http://ftp.debian.org/debian/pool/main/a/apprise/ using fetch api, where it is a apache directory listing page
// Use cheerio to parse the html and get the latest version of Apprise
// call curl to download the latest version of Apprise
// Target file: the latest version of Apprise, which the format is apprise_{VERSION}_all.deb
import * as cheerio from "cheerio";
const response = await fetch("http://ftp.debian.org/debian/pool/main/a/apprise/");
if (!response.ok) {
throw new Error("Failed to fetch page of Apprise Debian repository.");
}
const html = await response.text();
const $ = cheerio.load(html);
// Get all the links in the page
const linkElements = $("a");
// Filter the links which match apprise_{VERSION}_all.deb
const links = [];
for (let i = 0; i < linkElements.length; i++) {
const link = linkElements[i];
if (link.attribs.href.match(/apprise_(.*?)_all.deb/) && !link.attribs.href.includes("~")) {
links.push(link.attribs.href);
}
}
console.log(links);
// TODO: semver compare and download?

12
extra/test-backend.mjs Normal file
View File

@@ -0,0 +1,12 @@
// If Node.js >= 22, run `npm run test-backend-node22`, otherwise run `npm run test-backend-node20`
import * as childProcess from "child_process";
const version = parseInt(process.version.slice(1));
console.log(`Node.js version: ${version}`);
if (version >= 22) {
childProcess.execSync("npm run test-backend-node22", { stdio: "inherit" });
} else {
childProcess.execSync("npm run test-backend-node20", { stdio: "inherit" });
}

View File

@@ -27,7 +27,9 @@
"build": "vite build --config ./config/vite.config.js",
"test": "npm run test-backend && npm run test-e2e",
"test-with-build": "npm run build && npm test",
"test-backend": "cross-env TEST_BACKEND=1 node --test test/backend-test",
"test-backend": "node extra/test-backend.mjs",
"test-backend-node20": "cross-env TEST_BACKEND=1 node --test test/backend-test",
"test-backend-node22": "cross-env TEST_BACKEND=1 node --test test/backend-test/test-*.js && node --test test/backend-test/**/test-*.js",
"test-e2e": "playwright test --config ./config/playwright.config.js",
"test-e2e-ui": "playwright test --config ./config/playwright.config.js --ui --ui-port=51063",
"playwright-codegen": "playwright codegen localhost:3000 --save-storage=./private/e2e-auth.json",