Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,10 @@ jobs:
sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.extVersion }}\",#g" packages/extension/package.json
sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.extVersion }}\",#g" packages/rpc/package.json
sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.extVersion }}\",#g" packages/webview/package.json
sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.extVersion }}\",#g" tests/playwright/package.json
sed -i "s#\(ghcr.io/podman-desktop/podman-desktop-extension-kubernetes-dashboard-builder:\)next#\1${{ steps.TAG_UTIL.outputs.extVersion }}#g" build/Containerfile

git add package.json packages/api/package.json packages/channels/package.json packages/extension/package.json packages/rpc/package.json packages/webview/package.json build/Containerfile
git add package.json packages/api/package.json packages/channels/package.json packages/extension/package.json packages/rpc/package.json packages/webview/package.json tests/playwright/package.json build/Containerfile

# commit the changes
git commit -m "chore: 🥁 tagging ${{ steps.TAG_UTIL.outputs.githubTag }} 🥳"
Expand Down Expand Up @@ -107,9 +108,10 @@ jobs:
sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${bumpedVersion}-next\",#g" packages/extension/package.json
sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${bumpedVersion}-next\",#g" packages/rpc/package.json
sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${bumpedVersion}-next\",#g" packages/webview/package.json
sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${bumpedVersion}-next\",#g" tests/playwright/package.json
# put back next as the version in the Containerfile
sed -i "s|\(ghcr.io/podman-desktop/podman-desktop-extension-kubernetes-dashboard-builder:\)[^ ]*|\1next|" build/Containerfile
git add package.json packages/api/package.json packages/channels/package.json packages/extension/package.json packages/rpc/package.json packages/webview/package.json build/Containerfile
git add package.json packages/api/package.json packages/channels/package.json packages/extension/package.json packages/rpc/package.json packages/webview/package.json tests/playwright/package.json build/Containerfile

git commit -s --amend -m "chore: bump version to ${bumpedVersion}"
git push origin "${bumpedBranchName}"
Expand Down
2 changes: 1 addition & 1 deletion build/Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ RUN echo "node-linker=hoisted" >> /opt/app-root/extension/.npmrc
RUN eval 'dep_version() { pnpm list -P $1 --json --depth 0 |jq -r ".[0].dependencies.\"$1\".version"; };' && \
ISOMORPHIC_WS_VERSION=$(dep_version "isomorphic-ws") && \
echo adding isomorphic-ws version ${ISOMORPHIC_WS_VERSION} && \
pnpm --dir /opt/app-root/extension add isomorphic-ws@${ISOMORPHIC_WS_VERSION} --prod
pnpm --dir /opt/app-root/extension --workspace-root add isomorphic-ws@${ISOMORPHIC_WS_VERSION} --prod

# Copy the extension to a new image
FROM scratch
Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
"test:webview": "vitest run --project webview --passWithNoTests",
"test:channels": "vitest run --project channels --passWithNoTests",
"test": "pnpm run test:extension && pnpm run test:webview && pnpm run test:channels",
"test:e2e": "cd tests/playwright && npm run test:e2e",
"test:e2e:smoke": "cd tests/playwright && npm run test:e2e:smoke",
"typecheck:rpc": "tsc --noEmit --project packages/rpc",
"typecheck:channels": "tsc --noEmit --project packages/channels",
"typecheck:webview": "tsc --noEmit --project packages/webview",
Expand Down
96 changes: 95 additions & 1 deletion pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
packages:
- packages/*
- tests/*

onlyBuiltDependencies:
- esbuild
Expand Down
20 changes: 20 additions & 0 deletions tests/playwright/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "kubernetes-dashboard-tests-playwright",
"version": "0.2.0-next",
"description": "Kubernetes Dashboard extension Playwright E2E tests",
"scripts": {
"test:e2e:setup": "xvfb-maybe --auto-servernum --server-args='-screen 0 1280x960x24' --",
"test:e2e": "npm run test:e2e:setup playwright test src/",
"test:e2e:smoke": "npm run test:e2e:setup playwright test src/ --grep @smoke"
},
"publisher": "redhat",
"license": "Apache-2.0",
"devDependencies": {
"@playwright/test": "^1.57.0",
"@podman-desktop/tests-playwright": "^1.23.1",
"@types/node": "^24",
"typescript": "^5.9.3",
"xvfb-maybe": "^0.2.1"
},
"type": "module"
}
40 changes: 40 additions & 0 deletions tests/playwright/playwright.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/**********************************************************************
* Copyright (C) 2025 Red Hat, Inc.
*
* 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.
*
* SPDX-License-Identifier: Apache-2.0
***********************************************************************/

import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
outputDir: './output/',
workers: 1,

reporter: [
['list'],
['junit', { outputFile: './output/junit-results.xml' }],
['json', { outputFile: './output/json-results.json' }],
['html', { open: 'never', outputFolder: './output/html-results/' }],
],

projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
},
},
],
});
Loading