diff --git a/docs/devops.md b/docs/devops.md index 3652883549..56735af16c 100644 --- a/docs/devops.md +++ b/docs/devops.md @@ -148,18 +148,27 @@ And that's it, this will automatically trigger a build on the build pipeline for Here are some additional steps that need to be followed by a freeCodeCamp.org Staff developer. To prevent any accidental pushes we have a couple of manual approval steps configured on the pipelines. -Once a build artifact is ready on the `production-current` branch, it will trigger a release on the release pipeline. Next, freeCodeCamp.org developer staff team will receive an email. They can either *approve* or *reject* the release. Approval or rejection depends, if changes were nicely working and tested on the staging application. Each approval lasts only for 4 hours to avoid queuing up. Post the limit it gets auto rejected, wherein a staff will re-trigger the release pipeline manually. +Once a build artifact is ready on the `production-current` branch, it will trigger a release on the release pipeline. + +Next, freeCodeCamp.org developer staff team will receive an email. They can either *approve* or *reject* the release. Approval or rejection depends, if changes were nicely working and tested on the staging application. Each approval lasts only for 4 hours to avoid queuing up. Post the limit it gets auto rejected, wherein a staff will re-trigger the release pipeline manually. For staff use: -| Approve Release | Publish or Rollback on Netlify | -| :-------------: | :----------------------------: | -| Check your email for a direct link or [Open release dashboard](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release?_a=releases&view=mine&definitionId=6) | [Open Netlify deployments](https://app.netlify.com/sites/freecodecamp-org/deploys) | +| Approve Release | +| :-------------: | +| Check your email for a direct link or [Open release dashboard](https://dev.azure.com/freeCodeCamp-org/freeCodeCamp/_release?_a=releases&view=mine&definitionId=6) | Once one of the members approves a release, the pipeline will push the changes live to freeCodeCamp.org's production CDN and API servers. They typically take ~15-20 mins for the client, and ~5 mins for the API servers to be available live. As a final step, a staff member will also manually click the publish deploy button on Netlify's deployment's dashboard. +For staff use: + +| Publish or Rollback on Netlify | +| :----------------------------: | +| [Open Netlify deployments](https://app.netlify.com/sites/freecodecamp-org/deploys) | + + ## Build and Deployment Status Here is the current build and deployment status of the codebase. @@ -227,52 +236,3 @@ There will be some known limitations and tradeoffs when using the beta version o Please open fresh issues for discussions and reporting bugs. You can label them as **[`release: next/beta`](https://github.com/freeCodeCamp/freeCodeCamp/labels/release%3A%20next%2Fbeta)** for triage. You may send an email to `dev@freecodecamp.org` if you have any queries. As always all security vulnerabilities should be reported to `security@freecodecamp.org` instead of the public tracker and forum. - ---- - -## Additional workflows for freeCodeCamp.org Staff [WIP] - -### Provisioning VMs with API Code and starting up services - -1. Install Node LTS. - -2. Update `npm` and install PM2 and setup logrotate and startup on boot - - ``` - npm i -g npm - npm i -g pm2 - pm2 install pm2-logrotate - pm2 startup - ``` - -3. Clone freeCodeCamp, setup env and keys, install dependencies, and make first build. - - ``` - npm run ensure-env && npm run build:server - ``` - -4. Start Instances - - ``` - cd api-server - pm2 start production-start.js -i max --max-memory-restart 600M --name org - ``` - -5. Logging, Monitoring and Reloading on updates to code changes - - ``` - pm2 logs - ``` - - ``` - pm2 monitor - ``` - - ``` - pm2 reload all --update-env && pm2 logs - ``` - -### Configuring NGINX and DNS for the API VMs - - ... -