Feroze Mohideen 2 lat temu
rodzic
commit
7615fc6a07

+ 7 - 3
dashboard/src/main/home/app-dashboard/app-view/AppDataContainer.tsx

@@ -165,10 +165,9 @@ const AppDataContainer: React.FC<AppDataContainerProps> = ({ tabParam }) => {
 
       if (
         redeployOnSave &&
-        latestSource.type === "github" &&
-        dirtyFields.app?.build
+        latestSource.type === "github"
       ) {
-        await api.reRunGHWorkflow(
+        const res = await api.reRunGHWorkflow(
           "<token>",
           {},
           {
@@ -182,6 +181,10 @@ const AppDataContainer: React.FC<AppDataContainerProps> = ({ tabParam }) => {
           }
         );
 
+        if (res.data != null) {
+          window.open(res.data, "_blank", "noreferrer");
+        }
+
         setRedeployOnSave(false);
       }
 
@@ -193,6 +196,7 @@ const AppDataContainer: React.FC<AppDataContainerProps> = ({ tabParam }) => {
         porterApp.name,
       ]);
       setPreviewRevision(null);
+      history.push(`/apps/${porterApp.name}/${DEFAULT_TAB}`);
     } catch (err) { }
   });
 

+ 2 - 0
dashboard/src/main/home/app-dashboard/app-view/tabs/activity-feed/ActivityFeed.tsx

@@ -52,9 +52,11 @@ const ActivityFeed: React.FC<Props> = ({ appName, deploymentTargetId, currentClu
             );
 
             setNumPages(res.data.num_pages);
+
             const events = z.array(porterAppEventValidator).optional().default([]).parse(res.data.events);
             setEvents(events);
         } catch (err) {
+            console.log(err);
             setError(err);
         } finally {
             setLoading(false);

+ 10 - 4
dashboard/src/main/home/app-dashboard/app-view/tabs/activity-feed/events/types.ts

@@ -27,12 +27,14 @@ const porterAppDeployEventMetadataValidator = z.object({
     })),
 });
 const porterAppBuildEventMetadataValidator = z.object({
-    org: z.string(),
     repo: z.string(),
-    branch: z.string(),
-    action_run_id: z.string(),
-    github_account_id: z.string(),
+    action_run_id: z.number(),
+    github_account_id: z.number(),
 })
+const porterAppPreDeployEventMetadataValidator = z.object({
+    start_time: z.string(),
+    end_time: z.string().optional(),
+});
 export const porterAppEventValidator = z.object({
     id: z.string(),
     created_at: z.string(),
@@ -45,6 +47,7 @@ export const porterAppEventValidator = z.object({
         porterAppAppEventMetadataValidator,
         porterAppDeployEventMetadataValidator,
         porterAppBuildEventMetadataValidator,
+        porterAppPreDeployEventMetadataValidator,
     ]).optional(),
 }).refine((data) => {
     if (data.type === PorterAppEventType.APP_EVENT) {
@@ -56,6 +59,9 @@ export const porterAppEventValidator = z.object({
     if (data.type === PorterAppEventType.BUILD) {
         return porterAppBuildEventMetadataValidator.safeParse(data.metadata).success;
     }
+    if (data.type === PorterAppEventType.PRE_DEPLOY) {
+        return porterAppPreDeployEventMetadataValidator.safeParse(data.metadata).success;
+    }
     return true;
 });
 

+ 2 - 2
dashboard/src/main/home/app-dashboard/app-view/tabs/activity-feed/events/utils.ts

@@ -8,8 +8,8 @@ import { SourceOptions } from "lib/porter-apps";
 import { PorterAppRecord } from "../../../AppView";
 
 export const getDuration = (event: PorterAppEvent): string => {
-    const startTimeStamp = new Date(event.metadata.start_time ?? event.created_at).getTime();
-    const endTimeStamp = new Date(event.metadata.end_time ?? event.updated_at).getTime();
+    const startTimeStamp = new Date(event.metadata?.start_time ?? event.created_at).getTime();
+    const endTimeStamp = new Date(event.metadata?.end_time ?? event.updated_at).getTime();
 
     const timeDifferenceMilliseconds = endTimeStamp - startTimeStamp;
 

+ 1 - 0
dashboard/src/main/home/app-dashboard/expanded-app/activity-feed/ActivityFeed.tsx

@@ -62,6 +62,7 @@ const ActivityFeed: React.FC<Props> = ({ chart, stackName, appData }) => {
 
       setNumPages(res.data.num_pages);
       setEvents(res.data.events?.map((event: any) => PorterAppEvent.toPorterAppEvent(event)) ?? []);
+      setError(undefined)
     } catch (err) {
       setError(err);
     } finally {