Improve CI pipelines

- drop custom container, we don't want to maintain a hand-crafter
  container anymore
- use .nvmrc node version as single source of truth, also in gh actions
- bump playwright version, required to work on node >=24
This commit is contained in:
Rūdolfs Ošiņš
2026-05-13 12:31:36 +02:00
parent 2e5e7415c1
commit 2b001b59c8
6 changed files with 48 additions and 49 deletions
+17 -10
View File
@@ -10,22 +10,29 @@ jobs:
e2e:
runs-on: ubuntu-latest
container:
image: quay.io/radicle_garden/radicle-desktop-e2e:latest
image: mcr.microsoft.com/playwright:v1.60.0-noble
steps:
- uses: actions/checkout@v6
- uses: Swatinem/rust-cache@v2
- name: Cache node_modules
id: cache-npm
uses: actions/cache@v5
- uses: actions/setup-node@v6
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}
node-version-file: ".nvmrc"
- run: |
apt-get update && apt-get install -y --no-install-recommends \
build-essential \
pkg-config \
xz-utils \
libssl-dev \
libxdo-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libwebkit2gtk-4.1-dev \
libjavascriptcoregtk-4.1-dev
- run: npm ci
if: steps.cache-npm.outputs.cache-hit != 'true'
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Cache heartwood binaries
uses: actions/cache@v5
+13 -12
View File
@@ -9,32 +9,33 @@ env:
jobs:
lint-typescript:
runs-on: ubuntu-latest
container:
image: node:22.11.0
steps:
- uses: actions/checkout@v6
- name: Cache node_modules
id: cache-npm
uses: actions/cache@v5
- uses: actions/setup-node@v6
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}
node-version-file: ".nvmrc"
- run: npm ci
if: steps.cache-npm.outputs.cache-hit != 'true'
- run: npm run check-js
lint-rust:
runs-on: ubuntu-latest
container:
image: quay.io/radicle_garden/radicle-desktop-base:latest
steps:
- uses: actions/checkout@v6
- run: |
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
libxdo-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libwebkit2gtk-4.1-dev \
libjavascriptcoregtk-4.1-dev
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- run: scripts/check-rs
+2 -11
View File
@@ -9,20 +9,11 @@ env:
jobs:
unit-tests:
runs-on: ubuntu-latest
container:
image: node:22.11.0
steps:
- uses: actions/checkout@v6
- name: Cache node_modules
id: cache-npm
uses: actions/cache@v5
- uses: actions/setup-node@v6
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}
node-version-file: ".nvmrc"
- run: npm ci
if: steps.cache-npm.outputs.cache-hit != 'true'
- run: npm run test:unit
+1 -1
View File
@@ -45,7 +45,7 @@ npm run test:unit
```sh
npm run test:e2e -- --project webkit
npm run test:e2e -- --project webkit tests/e2e/<file>.spec.ts
npm run test:e2e -- tests/e2e/<file>.spec.ts --project webkit
```
`SKIP_SETUP=true` skips fixture creation for faster iteration.
+13 -13
View File
@@ -25,7 +25,7 @@
},
"devDependencies": {
"@eslint/js": "^9.26.0",
"@playwright/test": "^1.52.0",
"@playwright/test": "1.60.0",
"@radicle/gray-matter": "4.1.0",
"@sveltejs/vite-plugin-svelte": "^5.0.3",
"@tauri-apps/cli": "^2.5.0",
@@ -62,7 +62,7 @@
"marked-katex-extension": "^5.1.4",
"marked-linkify-it": "^3.1.12",
"md5": "^2.3.0",
"playwright": "^1.52.0",
"playwright": "1.60.0",
"prettier": "^3.5.3",
"prettier-plugin-svelte": "^3.3.3",
"svelte": "^5.28.2",
@@ -835,13 +835,13 @@
}
},
"node_modules/@playwright/test": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.52.0.tgz",
"integrity": "sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==",
"version": "1.60.0",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz",
"integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright": "1.52.0"
"playwright": "1.60.0"
},
"bin": {
"playwright": "cli.js"
@@ -4515,13 +4515,13 @@
}
},
"node_modules/playwright": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.52.0.tgz",
"integrity": "sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==",
"version": "1.60.0",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz",
"integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright-core": "1.52.0"
"playwright-core": "1.60.0"
},
"bin": {
"playwright": "cli.js"
@@ -4534,9 +4534,9 @@
}
},
"node_modules/playwright-core": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.52.0.tgz",
"integrity": "sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==",
"version": "1.60.0",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz",
"integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==",
"dev": true,
"license": "Apache-2.0",
"bin": {
+2 -2
View File
@@ -41,7 +41,7 @@
},
"devDependencies": {
"@eslint/js": "^9.26.0",
"@playwright/test": "^1.52.0",
"@playwright/test": "1.60.0",
"@radicle/gray-matter": "4.1.0",
"@sveltejs/vite-plugin-svelte": "^5.0.3",
"@tauri-apps/cli": "^2.5.0",
@@ -78,7 +78,7 @@
"marked-katex-extension": "^5.1.4",
"marked-linkify-it": "^3.1.12",
"md5": "^2.3.0",
"playwright": "^1.52.0",
"playwright": "1.60.0",
"prettier": "^3.5.3",
"prettier-plugin-svelte": "^3.3.3",
"svelte": "^5.28.2",