-
Notifications
You must be signed in to change notification settings - Fork 89
Emergency Runbook
This site is hosted on AWS Amplify by New Relic's OpenSource team and is maintained and supported by New Relic's developer experience team. If you have any questions or comments, please reach out to opensource@newrelic.com.
To diagnose a particular alert, we've started a Common Issues
This site is deployed utilizing Github Actions for continuous integration (CI) combined with AWS Amplify's branch-based continuous deployment (CD).
Amplify is connected to the master
and deploy
branches, and has webhooks set on the repo that listen for pushes to those branches. On push, an atomic deploy is triggered. If the build/deploy fails, the site will continue to run with the existing version.
Note: Any commit with
[skip-cd]
will bypass the build process in Amplify.
Production deployments are exclusively handled through merging a PR into the master
branch. If an ad-hoc deployment is required, please reach out to a project maintainer.
Staging deployments will happen frequently, and should be used to QA changes prior to opening a Pull Request to master
.
If it seems like builds/deploys should be occurring but aren't, please contact a project maintainer.
- Generation of project-stats data
- Triggered every 4 hours
- Docs/Wiki Sync
- Triggered on pushes to
develop
branch when thedocs
directory changes
- Triggered on pushes to
- Pull Request build/test/lint checking
- Triggered on pull requests being opened
- Release management
- Triggered on pushes to
develop
following the Conventional Commits standard.
- Triggered on pushes to
Every 4 hours, the project-stats workflow kicks off. After running this Actions, it will commit and push to both the develop
and master
branch. Then, this will trigger builds on Amplify.
Use the Amplify Console UI to select a previous build and redeploy that build.
First, determine the desired previous build:
- Navigate to the Releases tab in the opensource-website repo.
- Determine which release to rollback to. Typically, this should be
latest_release - 1
. However, you might need to go back further. Click the commit hash (in this case,12f5187
). - Use this commit message/hash value to locate the corresponding build in the Amplify Console.
Steps to redeploy in Amplify:
- Log into the Amplify Console via nr-prod okta.
- Select the
opensource-website
app. UnderFrontend environments
, selectmaster
. - Click the
View build history
button to see all the previous builds that have run. - Find the appropriate build corresponding to the release you located from the repo releases. This is the build to roll back to. Click
Build #xxx
to select that build. In this case, you'd selectBuild #10
. - Click
Redeploy this version
. Validate once the deploy is finished.
This project supports three environments, local development, staging (a.ka. development), and production.
Note: When building the site, Gatsby coerces anything you've set in NODE_ENV
to production
Corresponds to the master
branch
New Relic Domains: https://opensource.newrelic.com
Corresponds to the develop
branch
Amplify Domain: https://develop.d2pwh5nf8rvczf.amplifyapp.com/ New Relic Domains:
To run, execute npm start
from the root of this repository.
Should you want New Relic Browser instrumentation while developing locally, you will need to add an additional configuration option to gatsby-config.js
for the gatsby-plugin-newrelic
plugin.
The site is a combination of template-generated pages and single pages built using React, markup, and MDX.
Beyond the CI/CD automation, GitHub Actions are used to keep the stats data related to each project updated on a scheduled basis. Some of the architecture consequences of that change are described here.
No issues yet!