diff --git a/.github/workflows/detect-breaking-changes-build-skip.yml b/.github/workflows/detect-breaking-changes-build-skip.yml
index 58e3cb5642451..feac05d62c5cd 100644
--- a/.github/workflows/detect-breaking-changes-build-skip.yml
+++ b/.github/workflows/detect-breaking-changes-build-skip.yml
@@ -28,7 +28,7 @@ jobs:
# Upload artifact (so it can be used in the more privileged "report" workflow)
- name: Upload check output as artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: levitate
path: levitate/
diff --git a/.github/workflows/detect-breaking-changes-build.yml b/.github/workflows/detect-breaking-changes-build.yml
index daadcbde738e7..e8d73af52d52d 100644
--- a/.github/workflows/detect-breaking-changes-build.yml
+++ b/.github/workflows/detect-breaking-changes-build.yml
@@ -49,7 +49,7 @@ jobs:
run: zip -r ./pr_built_packages.zip ./packages/**/*.tgz
- name: Upload build output as artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: buildPr
path: './pr/pr_built_packages.zip'
@@ -97,7 +97,7 @@ jobs:
run: zip -r ./base_built_packages.zip ./packages/**/*.tgz
- name: Upload build output as artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: buildBase
path: './base/base_built_packages.zip'
@@ -149,7 +149,7 @@ jobs:
echo "{ \"exit_code\": ${{ steps.breaking-changes.outputs.is_breaking }}, \"message\": \"${{ steps.breaking-changes.outputs.message }}\", \"job_link\": \"${{ steps.job.outputs.link }}#step:${GITHUB_STEP_NUMBER}:1\", \"pr_number\": \"${{ github.event.pull_request.number }}\" }" > ./levitate/result.json
- name: Upload check output as artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: levitate
path: levitate/
diff --git a/.github/workflows/ui-tests.yml b/.github/workflows/ui-tests.yml
index 7f80b4095f5da..bcd5ae7cb3424 100644
--- a/.github/workflows/ui-tests.yml
+++ b/.github/workflows/ui-tests.yml
@@ -78,7 +78,7 @@ jobs:
- name: Attaching artifacts
if: ${{ always() }}
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: ui-tests-output
path: ./pmm-ui-tests/tests/output
diff --git a/public/app/percona/shared/components/PerconaBootstrapper/PerconaBootstrapper.tsx b/public/app/percona/shared/components/PerconaBootstrapper/PerconaBootstrapper.tsx
index be1a330158e97..cf0f27c66cedb 100644
--- a/public/app/percona/shared/components/PerconaBootstrapper/PerconaBootstrapper.tsx
+++ b/public/app/percona/shared/components/PerconaBootstrapper/PerconaBootstrapper.tsx
@@ -1,4 +1,5 @@
import React, { useEffect, useState } from 'react';
+import { useLocalStorage } from 'react-use';
import { config } from '@grafana/runtime';
import { Button, HorizontalGroup, Icon, Modal, useStyles2, useTheme2 } from '@grafana/ui';
@@ -24,6 +25,7 @@ import { Messages } from './PerconaBootstrapper.messages';
import { getStyles } from './PerconaBootstrapper.styles';
import { PerconaBootstrapperProps } from './PerconaBootstrapper.types';
import PerconaNavigation from './PerconaNavigation/PerconaNavigation';
+import PerconaNewVersion from './PerconaNewVersion';
import PerconaTourBootstrapper from './PerconaTour';
// This component is only responsible for populating the store with Percona's settings initially
@@ -36,6 +38,7 @@ export const PerconaBootstrapper = ({ onReady }: PerconaBootstrapperProps) => {
const { user } = config.bootData;
const { isSignedIn } = user;
const theme = useTheme2();
+ const [modalNewVersionShown, setModalNewVersionShown] = useLocalStorage(`${user.id}-grafana.pmm3.modalShown`, true);
const dismissModal = () => {
setModalIsOpen(false);
@@ -94,54 +97,63 @@ export const PerconaBootstrapper = ({ onReady }: PerconaBootstrapperProps) => {
}
}, [dispatch, isSignedIn, setSteps, onReady, user]);
+ const onDismissModalNewVersion = () => {
+ setModalNewVersionShown(false);
+ };
+
return (
<>
{isSignedIn &&
- {Messages.pmm}
- {Messages.pmmIs}
-
- {Messages.pmmEnables}
-
-
-
- {Messages.moreInfo} - - {Messages.pmmOnlineHelp} - - . -
-+ {Messages.pmm} + {Messages.pmmIs} +
++ {Messages.pmmEnables} +
+ {Messages.moreInfo} + + {Messages.pmmOnlineHelp} + + . +
+