Checklist for setting up the Github repository, Heroku, and other integrations when starting a new project.
This checklist assumes that the new repo was created using rails_template.
- Create a new repo in GitHub under the LaunchPad organization (do not initialize with a README)
- Add the repo as origin (following GitHub's instructions) and push the initial commit from the template
- Under "Settings" for the repo navigate to "Code security and analysis":
- Disable "Dependabot security updates" to prevent Dependabot from opening PRs (can leave "Dependabot alerts" to see the warnings for security vulnerabilities)
- This is recommended to encourage a more intentional focus on resolving security alerts
- Disable "Dependabot security updates" to prevent Dependabot from opening PRs (can leave "Dependabot alerts" to see the warnings for security vulnerabilities)
- Default to squash and merge behavior: Uncheck "allow merge commits" and "allow rebase merging"
- Check "automatically delete head branches"
- Set up
main,staging, anddevbranches - Set default branch to
dev - Protect
main,staging, anddevbranches:- Require pull request reviews before merging
- Require status checks to pass before merging
- Require branches to be up to date before merging
- Grant the
LPLteam write access to the repository - Grant your project team admin access to the repository
- Sentry is a platform that provides error and performance monitoring. See the Sentry configuration documentation to configure Sentry for your project.
- Confirm that repo has been added to Travis CI
- Add any required env vars to travis (as defined in
figaro.rbinitializer) - Under "More Options" > "Settings", uncheck "Build pushed pull requests" (leave "Build pushed branches" checked)
- Follow the instructions from Asana to add the GitHub app to your project
- Complete steps 1 and 2 in the Usage section of the GitHub Actions documentation to generate and set your repo's secret token
- Optional: The workflow files already exist in your new repo, but feel free to modify them. If you'd like to take advantage of the Ready for Review comment, make sure your repo has an "internal review" label available to avoid duplicate comments on review re-requests.
-
Create pipeline
-
Add
<APP_NAME>-devapp to pipeline indevelopmentstage (creating this stage requires an extra step)- Set to automatically deploy on push to
devbranch
- Set to automatically deploy on push to
-
Add
<APP_NAME>-stagingenvironment app to pipeline- Set
stagingto automatically deploy on push tostaging
- Set
-
Add
<APP_NAME>-productionenvironment app to pipelineproductionstage -
Optional: Add remotes to local (
git remote add dev <https:…>)
- Enable Review Apps for pipeline
- Opt to destroy stale review apps after 5 days
- Under "Configure" > "More settings":
- Update the url pattern to be predictable using the app (pipeline) name as the unique identifier
- Add required environment variables from the
app.jsonthat do not have values provided
- Add New Relic add-on to staging and production apps
- Add Papertrail add-on to staging and production apps
- Add admins and collaborators to Heroku pipeline as needed
- Add config vars from
application.ymlto each environment app (figaroprovides built-in functionality for this)