Skip to content

Commit

Permalink
Merge branch 'main' into mntor-3378
Browse files Browse the repository at this point in the history
  • Loading branch information
mansaj authored Nov 18, 2024
2 parents 06da548 + 9a30b62 commit b4b65f4
Show file tree
Hide file tree
Showing 27 changed files with 2,458 additions and 2,869 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/e2e_cron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ jobs:

- name: Send GitHub Action trigger data to Slack workflow
id: slack
uses: slackapi/slack-github-action@v1.27.0
uses: slackapi/slack-github-action@v2.0.0
if: failure() && github.ref == 'refs/heads/main'
with:
# For posting a message using Block Kit
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/lighthouse_cron.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Lighthouse Report Cron
on:
schedule:
- cron: '0 6 * * *'
workflow_dispatch:
inputs:
environment:
description: 'Environment to run LHCI against'
required: false
default: 'prod'
type: choice
options:
- stage
- prod
jobs:
lhci:
name: Lighthouse Report - ${{ inputs.environment != null && inputs.environment || 'prod' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.9.x
uses: actions/setup-node@v4
with:
node-version: 20.9.x
- name: Run Lighthouse CI
run: |
npm install -g @lhci/[email protected]
npm run lighthouse
env:
LIGHTHOUSE_COLLECT_URL: ${{ secrets.LIGHTHOUSE_COLLECT_URL }}
- name: Report results
run: npm run cron:report-lighthouse-results
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,6 @@ next-env.d.ts
# Glean
.venv
/src/telemetry/generated/

# Lighthouse CI
.lighthouseci
33 changes: 19 additions & 14 deletions docs/release_process.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,24 +90,30 @@ Once a PR is successfully merged:
1. ensure that the merge commit in `main` branch passes all checks and a docker image is successfully deployed.
2. Jenkins will kick off the deployment of the latest built docker image to stage environment
3. A webhook will send status messages into the `#fx-monitor-engineering` channel.
- Watch for messages: `FX MONITOR STAGE STARTED` and `FX MONITOR STAGE COMPLETE`
- Watch for messages: `pushing to staging started` and `successfully deployed to staging`

## Release to Production

Before releasing to production, we need to assess the current state of our work on stage. We need to cross-reference what's already on stage and what's been greenlit by QA. To do this, we need to find the difference between what was released last time in production and what we currently have on stage.
### Daily pre-releases

### Check the diff in Release Notes and notify the team
Github pre-releases are generated daily via a (daily-pre-release)[daily-pre-release] GHA workflow.
The pre-release will include all the PRs that got merged into main (stage) that day.
The cron job will only execute Monday to Friday.
As a base load engineer, you can get into a habit of checking pre-releases every morning to see what's been pushed and what's been checked by the QAs. Once everything is checked off in a pre-release, we can proceed to deploying that pre-release to production and mark it as the latest

[make a release on GitHub][github-new-release] in order to check the difference.
### Deploy to Production

1. Choose the tag you want for your release. Use today's date (e.g., `2024.09.01`)
2. Type the same tag name for the release title (e.g., `2024.09.01`)
3. Click the "Generate release notes" button!
4. _DO NOT_ press "Publish release" yet
5. Copy and Paste the release notes in the engineering slack channel so the team is aware
6. Go through the PRs, cross-reference the tickets in the PRs with the [Jira][jira] board to see if QA has approved the tickets. If anything is unclear, make sure to tag the author of the PR.
7. If anything has not been properly tested, make a note, and again, double check with the person
8. If everything looks good, proceed to release, otherwise refer to the section `Stage-fixes` below.
Before deploying to production, we need to assess the current state of our work on stage. We need to cross-reference what's already on stage and what's been greenlit by QA. To do this, we need to find the difference between what was released last time in production and what we currently have on stage.

### Mark pre-release as latest, check the diff in Release Notes, and notify the team

1. Find the pre-release/tag you want to use for the deploy (e.g., `2024.09.01`)
2. Edit the release
3. Check the checkbox `Set as the latest release`
4. Copy and Paste the release notes in the engineering slack channel so the team is aware
5. Go through the PRs, cross-reference the tickets in the PRs with the [Jira][jira] board to see if QA has approved the tickets. If anything is unclear, make sure to tag the author of the PR.
6. If anything has not been properly tested, make a note, and again, double check with the person
7. If everything looks good, proceed to release, otherwise refer to the section `Stage-fixes` below.

### Update Production Environment Variables

Expand Down Expand Up @@ -181,8 +187,6 @@ Wherever feature flags aren't applicable, there are generally two scenarios we n

After adding 1-click production deploy capability and broadly adopting [feature flags][feature-flags], we are looking into ways to increase our production release frequency. The main challenge here is to coordiate our QA effort with our latest stage CICD deployments.

We are starting to look into creating daily GitHub pre-releases via GHA, and once QA'd, having these deployed automatically or manually by base load engineers.

[prod]: https://monitor.firefox.com/
[stage]: https://stage.firefoxmonitor.nonprod.cloudops.mozgcp.net/
[readme]: https://github.com/mozilla/blurts-server/blob/main/README.md
Expand All @@ -195,3 +199,4 @@ We are starting to look into creating daily GitHub pre-releases via GHA, and onc
[jira]: https://mozilla-hub.atlassian.net/jira/software/c/projects/MNTOR/boards/447
[dockerhub]: https://hub.docker.com/r/mozilla/blurts-server/tags
[1-click deploy]: https://github.com/mozilla/blurts-server/actions/workflows/production_deploy.yml
[daily-pre-release]: https://github.com/mozilla/blurts-server/actions/workflows/release_cron_daily.yml
25 changes: 25 additions & 0 deletions lighthouserc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

const pages = ["/", "/breaches", "/breach-details/InternetArchive"];

const collectBaseUrl =
process.env.LIGHTHOUSE_COLLECT_URL ?? "http://localhost:3000";
const isLocalhost = new URL(collectBaseUrl).hostname === "localhost";

const lighthouseConfig = {
ci: {
collect: {
startServerCommand: isLocalhost && "npm run start",
url: pages.map((pathname) => `${collectBaseUrl}${pathname}`),
numberOfRuns: 3,
},
upload: {
target: "filesystem",
outputDir: ".lighthouseci",
},
},
};

module.exports = lighthouseConfig;
14 changes: 12 additions & 2 deletions locales/he/add-email.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,17 @@
### Dialog window that allows a user to add a new email address to be monitored

add-email-add-another-heading = הוספת כתובת דוא״ל נוספת
# $total is the number of emails a user is allowed to add
add-email-your-account-includes =
{ $total ->
[one] החשבון שלך כולל ניטור של כתובת דוא״ל אחת. כדאי להוסיף כתובת דוא״ל חדשה כדי לבדוק אם היא הייתה מעורבת בדליפה.
*[other] החשבון שלך כולל ניטור של עד { $total } כתובות דוא״ל. כדאי להוסיף כתובת דוא״ל חדשה כדי לבדוק אם היא הייתה מעורבת בדליפה.
}
add-email-address-input-label = כתובת דוא״ל
add-email-send-verification-button = שליחת קישור לאימות
# $email is the newly added email address. $settings-href is the URL for the Settings page. HTML tags should not be translated, e.g. `<a>`
# This string will be deprecated when the new Plus plan is live.
add-email-verify-the-link = נא לאמת את הקישור שנשלח אל הכתובת { $email } כדי להוסיף אותה אל { -brand-fx-monitor }. ניתן לנהל את כל כתובות הדוא״ל ב<a { $settings-href }>הגדרות</a>.
# Variables:
# $email (string) - An email address submitted by the user for monitoring, e.g. `[email protected]`
add-email-verify-the-link-2 = נא לאמת את הקישור שנשלח לכתובת <b>{ $email }</b> כדי להוסיף אותה אל { -brand-mozilla-monitor }.
137 changes: 66 additions & 71 deletions locales/he/app.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -10,90 +10,69 @@
## unless otherwise indicated.

-product-name = Mozilla Monitor
-product-name-nowrap = <span class="nowrap">{ -product-name }</span>
-product-short-name = Monitor
-brand-name = Firefox
-brand-Mozilla = Mozilla
-brand-HIBP = האם עקצו אותי
-brand-fxa = חשבון Firefox
-brand-pocket = Pocket
-brand-lockwise = Firefox Lockwise
-brand-send = Firefox Send
-brand-fpn = Firefox Private Network
-brand-firefox = Firefox
-brand-monitor = Monitor
-brand-fx-monitor = Mozilla Monitor
-brand-mozilla = Mozilla
-brand-premium = Premium
-brand-monitor-premium = Monitor Premium
-brand-mozilla-foundation = Mozilla Foundation
-brand-github = GitHub
-brand-mozilla-vpn = Mozilla VPN
-brand-relay = Firefox Relay
-brand-mozilla-monitor = Mozilla Monitor
-brand-monitor-plus = Monitor Plus
##

error-could-not-add-email = לא ניתן להוסיף כתובת דוא״ל למסד הנתונים.
error-not-subscribed = כתובת הדוא״ל הזו אינה רשומה ל־{ -product-name }.
error-hibp-throttled = יותר מדי חיבורים אל { -brand-HIBP }.
error-hibp-connect = שגיאה בהתחברות אל { -brand-HIBP }.
user-add-invalid-email = דוא״ל שגוי
user-add-too-many-emails = הינך במעקב אחר המספר המירבי של כתובות דוא״ל.
user-add-duplicate-email = דוא״ל זה כבר נוסף אל { -product-name }.
user-add-verification-email-just-sent = לא ניתן לשלוח הודעת דוא״ל לאימות נוספת במהירות כזו. נא לנסות שוב מאוחר יותר.
user-add-unknown-error = משהו השתבש בעת הוספת כתובת דוא״ל נוספת. נא לנסות שוב מאוחר יותר.
user-delete-unknown-error = משהו השתבש בעת הסרת כתובת דוא״ל. נא לנסות שוב מאוחר יותר.
user-verify-token-error = נדרש אסימון אימות.
user-unsubscribe-token-error = ביטול הרשמה דורש אסימון.
user-unsubscribe-token-email-error = ביטול הרישום דורש אסימון וגיבוב דוא״ל.
# compromised-data = the kind of user data exposed to hackers in data breach.
compromised-data = מידע שנחשף:
# Breach data provided by Have I Been Pwned.
# Variables:
# $hibp-link (String) - Link to Have I Been Pwned
hibp-attribution = נתוני הדליפה מסופקים על־ידי { $hibp-link }
show-all = הצגת הכל
sign-out = התנתקות
# Manage Firefox Account, link to page where account holders can change their account settings.
manage-fxa = ניהול { -brand-fxa }
# Link title
frequently-asked-questions = תשובות לשאלות נפוצות
# Link title
preferences = העדפות
# Link title
home = בית
# Link title
security-tips = עצות אבטחה
# Link title
more-about-this-breach = עוד על הדליפה הזו
monitor-several-emails = ניטור אחר מספר כתובות דוא״ל
sensitive-sites = כיצד { -product-name } מתייחס לאתרים רגישים?
avoid-personal-info = כדאי להימנע משימוש בפרטים אישיים בססמאות
## What to do after data breach tips

send-verification = שליחת קישור לאימות
# This string is a header on the user preferences page and
# appears above a check-box list of user options which allow
# the user to choose whether or not they want to receive breach
# alerts for all of their monitored email addresses to a single
# email address.
breach-summary = קיצור הדליפה
## Variables:
## $userName (String) - Username

##

breach-alert-subject = { -product-name } מצא את הדוא״ל שלך בדליפת נתונים חדשה
## Variables:
## $breachName (String) - Number of the breach

# This string is displayed under a large numeral that indicates the total number
# of data breaches that exposed a user’s password. Don’t add $passwords to
# your localization, because it would result in the number showing twice.
Expand All @@ -102,7 +81,6 @@ passwords-exposed =
[one] ססמה אחת נחשפה בכל הדליפות
*[other] ססמאות נחשפו בכל הדליפות
}
# This string is displayed under a large numeral that indicates the total number
# of data breaches that have exposed the user’s information. Don’t add $breaches to
# your localization, because it would result in the number showing twice.
Expand All @@ -111,7 +89,6 @@ known-data-breaches-exposed =
[one] דליפת נתונים מוכרת אחת חשפה מידע עליך
*[other] דליפות נתונים מוכרות חשפו מידע עליך
}
# Title that appears in the mobile menu bar and opens the mobile menu when clicked.
menu = תפריט
Expand All @@ -122,60 +99,78 @@ menu = תפריט
# and is followed by that date.
breach-added-label = דליפה נוספה:
## This string contains nested markup that becomes a link later in the code.
## Please do not modify or remove "<a>" and "</a>".


##


## These strings contain nested markup that is later used to style the text inside of it.
## Please do not modify or remove "<span>" and "</span>".


# Monitor V2


## The following messages are brands and should be kept entirely in English

-brand-mozilla-vpn = Mozilla VPN
-brand-relay = Firefox Relay
##

# A status indicator that appears in the top right corner of new breach cards
new-breach = חדש
##

##

## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`


## Relay and VPN educational/ad units


##

## Updated error messages
# “account” can be localized, “Mozilla” must be treated as a brand,
# and kept in English.
-brand-mozilla-account =
{ $case ->
[the] חשבון ה־Mozilla
*[a] חשבון Mozilla
}
open-in-new-tab-alt = פתיחת קישור בלשונית חדשה
## Search Engine Optimization


## Header

# Deprecated
brand-fx-monitor = { -brand-fx-monitor }
sign-in = התחברות
brand-mozilla-monitor = { -brand-fx-monitor }
## Site navigation

mobile-menu-label = תפריט ראשי
main-nav-button-collapse-label = צמצום התפריט
main-nav-button-collapse-tooltip = צמצום התפריט
main-nav-button-expand-label = הרחבת התפריט
main-nav-button-expand-tooltip = הרחבת התפריט
main-nav-label = ניווט
main-nav-link-home-label = בית
main-nav-link-dashboard-label = לוח בקרה
main-nav-link-settings-label = הגדרות
main-nav-link-faq-label = תשובות לשאלות נפוצות
main-nav-link-faq-tooltip = תשובות לשאלות נפוצות
## User menu

user-menu-trigger-label = פתיחת תפריט משתמש
user-menu-trigger-tooltip = פרופיל
user-menu-manage-fxa-label = ניהול { -brand-mozilla-account(case: "the") } שלך
user-menu-settings-label = הגדרות
user-menu-settings-tooltip = הגדרת תצורה של { -brand-mozilla-monitor }
user-menu-help-label = עזרה ותמיכה
user-menu-help-tooltip = קבלת עזרה בשימוש ב־{ -brand-mozilla-monitor }
user-menu-signout-label = התנתקות
user-menu-signout-tooltip = התנתקות מ־{ -brand-mozilla-monitor }
## Footer

mozilla = { -brand-mozilla }
terms-of-service = תנאי השירות
privacy-notice = הצהרת פרטיות
github = { -brand-github }
footer-nav-recent-breaches = דליפות נתונים אחרונות
footer-external-link-faq-label = תשובות לשאלות נפוצות
footer-external-link-faq-tooltip = תשובות לשאלות נפוצות
## Error page

# Variables:
# $errorCode (number) - "404"
error-page-error-404-title = { $errorCode } הדף לא נמצא
error-page-error-404-copy = הדף שחיפשת כבר לא קיים, עמך הסליחה.
error-page-error-404-cta-button = חזרה אחורה
# Variables:
# $errorCode (number) - the status code of the error, e.g. 403
error-page-error-other-title = { $errorCode } משהו השתבש
## Breach overview page

Expand All @@ -184,8 +179,8 @@ search-breaches = חיפוש בדליפות
## Public breach detail page


## Floating banner


## Firefox Monitor -> Mozilla Monitor rebrand banner

banner-monitor-rebrand-dismiss-button-label = אישור
banner-monitor-rebrand-dismiss-button-tooltip = סגירה
loading-accessibility = בטעינה
Loading

0 comments on commit b4b65f4

Please sign in to comment.