diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 4845e1487..f15a9da77 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -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 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 249bd2040..c9d43863a 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -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 diff --git a/.github/workflows/unit-test.yaml b/.github/workflows/unit-test.yaml index 054dfcf67..e71a02c93 100644 --- a/.github/workflows/unit-test.yaml +++ b/.github/workflows/unit-test.yaml @@ -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 diff --git a/CLAUDE.md b/CLAUDE.md index 62db71e46..1b9b23d37 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,7 +45,7 @@ npm run test:unit ```sh npm run test:e2e -- --project webkit -npm run test:e2e -- --project webkit tests/e2e/.spec.ts +npm run test:e2e -- tests/e2e/.spec.ts --project webkit ``` `SKIP_SETUP=true` skips fixture creation for faster iteration. diff --git a/package-lock.json b/package-lock.json index e1f6084de..25b38faa8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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": { diff --git a/package.json b/package.json index 79841224d..a7bae4529 100644 --- a/package.json +++ b/package.json @@ -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",