From ea9d4b99af2efe4506119c630c988c12c7d63ac3 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Wed, 29 Mar 2023 20:37:43 +0000 Subject: [PATCH 1/3] update checklist template --- .../createOrUpdateStagingDeploy.js | 1 + .github/libs/GithubUtils.js | 5 +++++ tests/unit/createOrUpdateStagingDeployTest.js | 6 ++++++ 3 files changed, 12 insertions(+) diff --git a/.github/actions/javascript/createOrUpdateStagingDeploy/createOrUpdateStagingDeploy.js b/.github/actions/javascript/createOrUpdateStagingDeploy/createOrUpdateStagingDeploy.js index b1a94b66d98b..d88c715d450d 100644 --- a/.github/actions/javascript/createOrUpdateStagingDeploy/createOrUpdateStagingDeploy.js +++ b/.github/actions/javascript/createOrUpdateStagingDeploy/createOrUpdateStagingDeploy.js @@ -136,6 +136,7 @@ const run = function () { _.pluck(_.where(internalQAPRList, {isResolved: true}), 'url'), didVersionChange ? false : currentStagingDeployCashData.isTimingDashboardChecked, didVersionChange ? false : currentStagingDeployCashData.isFirebaseChecked, + didVersionChange ? false : currentStagingDeployCashData.isGHStatusChecked, ); }) .then((body) => { diff --git a/.github/libs/GithubUtils.js b/.github/libs/GithubUtils.js index 7fb44052b51b..4ab6dabda163 100644 --- a/.github/libs/GithubUtils.js +++ b/.github/libs/GithubUtils.js @@ -139,6 +139,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -234,6 +235,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -245,6 +247,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -332,6 +335,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/tests/unit/createOrUpdateStagingDeployTest.js b/tests/unit/createOrUpdateStagingDeployTest.js index f4c5d0bb9edf..9f98e867ac80 100644 --- a/tests/unit/createOrUpdateStagingDeployTest.js +++ b/tests/unit/createOrUpdateStagingDeployTest.js @@ -106,6 +106,8 @@ const deployerVerificationsHeader = '**Deployer verifications:**'; const timingDashboardVerification = 'I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.'; // eslint-disable-next-line max-len const firebaseVerification = 'I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).'; +// eslint-disable-next-line max-len +const ghVerification = 'I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.'; const ccApplauseLeads = 'cc @Expensify/applauseleads\r\n'; const deployBlockerHeader = '**Deploy Blockers:**'; const lineBreak = '\r\n'; @@ -175,6 +177,7 @@ describe('createOrUpdateStagingDeployCash', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, }); }); @@ -198,6 +201,7 @@ describe('createOrUpdateStagingDeployCash', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${closedCheckbox}${timingDashboardVerification}` + `${lineBreak}${closedCheckbox}${firebaseVerification}` + + `${lineBreak}${closedCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, state: 'open', }; @@ -299,6 +303,7 @@ describe('createOrUpdateStagingDeployCash', () => { // Note: these will be unchecked with a new app version, and that's intentional + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, }); }); @@ -368,6 +373,7 @@ describe('createOrUpdateStagingDeployCash', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${closedCheckbox}${timingDashboardVerification}` + `${lineBreak}${closedCheckbox}${firebaseVerification}` + + `${lineBreak}${closedCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, }); }); From 4a8bce9f12673b6d85f91fcab39ab08ef2221b76 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Wed, 29 Mar 2023 21:07:17 +0000 Subject: [PATCH 2/3] update tests --- tests/unit/GithubUtilsTest.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/unit/GithubUtilsTest.js b/tests/unit/GithubUtilsTest.js index e374941bbad6..41e98dded10f 100644 --- a/tests/unit/GithubUtilsTest.js +++ b/tests/unit/GithubUtilsTest.js @@ -94,6 +94,7 @@ describe('GithubUtils', () => { internalQAPRList: [], isTimingDashboardChecked: false, isFirebaseChecked: false, + isGHStatusChecked: false, }; const expectedResponseWithDeployBlockers = {...baseExpectedResponse}; expectedResponseWithDeployBlockers.deployBlockers = [ @@ -404,6 +405,8 @@ describe('GithubUtils', () => { const timingDashboardVerification = 'I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.'; // eslint-disable-next-line max-len const firebaseVerification = 'I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).'; + // eslint-disable-next-line max-len + const ghVerification = 'I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.'; // Valid output which will be reused in the deploy blocker tests const allVerifiedExpectedOutput = `${baseExpectedOutput}` @@ -427,6 +430,7 @@ describe('GithubUtils', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, ); }) @@ -445,6 +449,7 @@ describe('GithubUtils', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, ); }) @@ -458,6 +463,7 @@ describe('GithubUtils', () => { + `${lineBreak}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, ); }) @@ -473,7 +479,8 @@ describe('GithubUtils', () => { + `${lineBreak}${openCheckbox}${baseDeployBlockerList[1]}` + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` - + `${lineBreak}${openCheckbox}${firebaseVerification}${lineBreak}` + + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}${lineBreak}` + `${lineBreak}${ccApplauseLeads}`, ); }) @@ -490,6 +497,7 @@ describe('GithubUtils', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, ); }) @@ -511,6 +519,7 @@ describe('GithubUtils', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, ); }) @@ -532,6 +541,7 @@ describe('GithubUtils', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, ); }) @@ -553,6 +563,7 @@ describe('GithubUtils', () => { + `${lineBreakDouble}${deployerVerificationsHeader}` + `${lineBreak}${openCheckbox}${timingDashboardVerification}` + `${lineBreak}${openCheckbox}${firebaseVerification}` + + `${lineBreak}${openCheckbox}${ghVerification}` + `${lineBreakDouble}${ccApplauseLeads}`, ); }) From c7b280260564e6c82f117fef1618b9800b30c691 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Wed, 29 Mar 2023 21:19:44 +0000 Subject: [PATCH 3/3] build gh actions --- .github/actions/javascript/authorChecklist/index.js | 5 +++++ .github/actions/javascript/awaitStagingDeploys/index.js | 5 +++++ .github/actions/javascript/checkDeployBlockers/index.js | 5 +++++ .../actions/javascript/createOrUpdateStagingDeploy/index.js | 6 ++++++ .../actions/javascript/getDeployPullRequestList/index.js | 5 +++++ .github/actions/javascript/getPullRequestDetails/index.js | 5 +++++ .github/actions/javascript/getReleaseBody/index.js | 5 +++++ .github/actions/javascript/isPullRequestMergeable/index.js | 5 +++++ .github/actions/javascript/isStagingDeployLocked/index.js | 5 +++++ .../actions/javascript/markPullRequestsAsDeployed/index.js | 5 +++++ .github/actions/javascript/postTestBuildComment/index.js | 5 +++++ .github/actions/javascript/reopenIssueWithComment/index.js | 5 +++++ .github/actions/javascript/reviewerChecklist/index.js | 5 +++++ .github/actions/javascript/triggerWorkflowAndWait/index.js | 5 +++++ .github/actions/javascript/verifySignedCommits/index.js | 5 +++++ 15 files changed, 76 insertions(+) diff --git a/.github/actions/javascript/authorChecklist/index.js b/.github/actions/javascript/authorChecklist/index.js index e972c95f72d9..0cc52d0b3989 100644 --- a/.github/actions/javascript/authorChecklist/index.js +++ b/.github/actions/javascript/authorChecklist/index.js @@ -225,6 +225,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -320,6 +321,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -331,6 +333,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -418,6 +421,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/awaitStagingDeploys/index.js b/.github/actions/javascript/awaitStagingDeploys/index.js index e8ca8378422d..a9b566def1b3 100644 --- a/.github/actions/javascript/awaitStagingDeploys/index.js +++ b/.github/actions/javascript/awaitStagingDeploys/index.js @@ -256,6 +256,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -351,6 +352,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -362,6 +364,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -449,6 +452,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/checkDeployBlockers/index.js b/.github/actions/javascript/checkDeployBlockers/index.js index 97aa393de8d9..2f4d6fea560e 100644 --- a/.github/actions/javascript/checkDeployBlockers/index.js +++ b/.github/actions/javascript/checkDeployBlockers/index.js @@ -226,6 +226,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -321,6 +322,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -332,6 +334,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -419,6 +422,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/createOrUpdateStagingDeploy/index.js b/.github/actions/javascript/createOrUpdateStagingDeploy/index.js index 3f2b813dd8cb..141f3854ed9a 100644 --- a/.github/actions/javascript/createOrUpdateStagingDeploy/index.js +++ b/.github/actions/javascript/createOrUpdateStagingDeploy/index.js @@ -146,6 +146,7 @@ const run = function () { _.pluck(_.where(internalQAPRList, {isResolved: true}), 'url'), didVersionChange ? false : currentStagingDeployCashData.isTimingDashboardChecked, didVersionChange ? false : currentStagingDeployCashData.isFirebaseChecked, + didVersionChange ? false : currentStagingDeployCashData.isGHStatusChecked, ); }) .then((body) => { @@ -452,6 +453,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -547,6 +549,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -558,6 +561,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -645,6 +649,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/getDeployPullRequestList/index.js b/.github/actions/javascript/getDeployPullRequestList/index.js index 1c8909bdc760..c674d80db021 100644 --- a/.github/actions/javascript/getDeployPullRequestList/index.js +++ b/.github/actions/javascript/getDeployPullRequestList/index.js @@ -385,6 +385,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -480,6 +481,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -491,6 +493,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -578,6 +581,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/getPullRequestDetails/index.js b/.github/actions/javascript/getPullRequestDetails/index.js index bcea1f3cfcf5..43c249053923 100644 --- a/.github/actions/javascript/getPullRequestDetails/index.js +++ b/.github/actions/javascript/getPullRequestDetails/index.js @@ -301,6 +301,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -396,6 +397,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -407,6 +409,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -494,6 +497,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/getReleaseBody/index.js b/.github/actions/javascript/getReleaseBody/index.js index 8abf35ad71b6..f28fb447bfcd 100644 --- a/.github/actions/javascript/getReleaseBody/index.js +++ b/.github/actions/javascript/getReleaseBody/index.js @@ -215,6 +215,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -310,6 +311,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -321,6 +323,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -408,6 +411,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/isPullRequestMergeable/index.js b/.github/actions/javascript/isPullRequestMergeable/index.js index 17045ee9bd73..4d9176037bd4 100644 --- a/.github/actions/javascript/isPullRequestMergeable/index.js +++ b/.github/actions/javascript/isPullRequestMergeable/index.js @@ -247,6 +247,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -342,6 +343,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -353,6 +355,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -440,6 +443,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/isStagingDeployLocked/index.js b/.github/actions/javascript/isStagingDeployLocked/index.js index afad2e24a68e..c60128c329f8 100644 --- a/.github/actions/javascript/isStagingDeployLocked/index.js +++ b/.github/actions/javascript/isStagingDeployLocked/index.js @@ -179,6 +179,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -274,6 +275,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -285,6 +287,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -372,6 +375,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/markPullRequestsAsDeployed/index.js b/.github/actions/javascript/markPullRequestsAsDeployed/index.js index a02018668f78..38b962e54d7b 100644 --- a/.github/actions/javascript/markPullRequestsAsDeployed/index.js +++ b/.github/actions/javascript/markPullRequestsAsDeployed/index.js @@ -348,6 +348,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -443,6 +444,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -454,6 +456,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -541,6 +544,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/postTestBuildComment/index.js b/.github/actions/javascript/postTestBuildComment/index.js index 3474ca61aaf2..b123f478f0a4 100644 --- a/.github/actions/javascript/postTestBuildComment/index.js +++ b/.github/actions/javascript/postTestBuildComment/index.js @@ -227,6 +227,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -322,6 +323,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -333,6 +335,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -420,6 +423,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/reopenIssueWithComment/index.js b/.github/actions/javascript/reopenIssueWithComment/index.js index 7ce459811275..2f2f82d37fef 100644 --- a/.github/actions/javascript/reopenIssueWithComment/index.js +++ b/.github/actions/javascript/reopenIssueWithComment/index.js @@ -190,6 +190,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -285,6 +286,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -296,6 +298,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -383,6 +386,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/reviewerChecklist/index.js b/.github/actions/javascript/reviewerChecklist/index.js index 41c7e522fe11..ae5fbfda0647 100644 --- a/.github/actions/javascript/reviewerChecklist/index.js +++ b/.github/actions/javascript/reviewerChecklist/index.js @@ -259,6 +259,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -354,6 +355,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -365,6 +367,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -452,6 +455,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/triggerWorkflowAndWait/index.js b/.github/actions/javascript/triggerWorkflowAndWait/index.js index d785d9a78a72..88867a5b8736 100644 --- a/.github/actions/javascript/triggerWorkflowAndWait/index.js +++ b/.github/actions/javascript/triggerWorkflowAndWait/index.js @@ -359,6 +359,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -454,6 +455,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -465,6 +467,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -552,6 +555,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody; diff --git a/.github/actions/javascript/verifySignedCommits/index.js b/.github/actions/javascript/verifySignedCommits/index.js index 48aea0842b79..9ebcde644c4e 100644 --- a/.github/actions/javascript/verifySignedCommits/index.js +++ b/.github/actions/javascript/verifySignedCommits/index.js @@ -179,6 +179,7 @@ class GithubUtils { internalQAPRList: this.getStagingDeployCashInternalQA(issue), isTimingDashboardChecked: /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body), isFirebaseChecked: /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body), + isGHStatusChecked: /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body), tag, }; } catch (exception) { @@ -274,6 +275,7 @@ class GithubUtils { * @param {Array} [resolvedInternalQAPRs] - The list of Internal QA PR URLs which have been resolved. * @param {Boolean} [isTimingDashboardChecked] * @param {Boolean} [isFirebaseChecked] + * @param {Boolean} [isGHStatusChecked] * @returns {Promise} */ static generateStagingDeployCashBody( @@ -285,6 +287,7 @@ class GithubUtils { resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, + isGHStatusChecked = false, ) { return this.fetchAllPullRequests(_.map(PRList, this.getPullRequestNumberFromURL)) .then((data) => { @@ -372,6 +375,8 @@ class GithubUtils { issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`; // eslint-disable-next-line max-len issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`; + // eslint-disable-next-line max-len + issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`; issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n'; return issueBody;