New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pause content pipeline during Hour of Code lockdown #43736
Pause content pipeline during Hour of Code lockdown #43736
Conversation
…ng branch during Hour of Code lockdown.
@@ -73,14 +72,6 @@ | |||
cronjob at:'*/5 * * * *', do:deploy_dir('bin', 'snapshot') | |||
end | |||
|
|||
if node.chef_environment == 'levelbuilder' | |||
cronjob at:'0 20 * * 1-5', do:deploy_dir('bin', 'cron', 'commit_content') | |||
cronjob at:'18 23 * * 1-5', do:deploy_dir('bin', 'cron', 'commit_content') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the purpose of this line is to avoid merge conflicts during DTL when incoming changes touch files which have uncommitted local changes on the levelbuilder machine. so, I think your best options are:
- also disable
deploy_to_levelbuilder
on line 71, or - re-enable line 78 here, and if levelbuilder content does need to be scooped, do a more precise cherry-pick from what you see in the levelbuilder branch when you want to scoop changes in from levelbuilder.
I would suggest starting with (1), and if we need to DTL at some point during lockdown, it will be easy to add back lines 71 and 78 to transition into option 2.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cc @code-dot-org/ed-programs-tools in case anyone would like to advocate for keeping DTLs going during lockdown. of course, levelbuilder would only be getting updated from changes merged to staging, not staging-next.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: if you go with option 1, I think it would be a little easier to leave the if clause and just comment out the lines you don't want, so that it is easier to restore bit by bit later if needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My memory is that curriculum (level builder) content that needs to be released during the lockdown needs to be hand staged, committed, and pushed on the levelbuilder server since there may be unrelated content changes that we would not want to blanket scoop on level builder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aside from hand selecting the level builder content to commit/push, I think the Developer of the Day will use the commands in the Developer of the Day script to commit/push/merge content during the lockdown period, and then we would re-enable our content pipeline by reverting this entire Pull Request after Hour of Code.
I don't know too much about the content pipeline, but syntactically this looks good. |
Could these be tied to a DCDO flag for the future? Maybe one we are already setting around this time for other HOC things? |
a config flag sounds reasonable to me. if we want to go down that path, I think a non-dynamic |
…r-hourofcode-lockdown Pause content pipeline during Hour of Code lockdown
Ensure that no levelbuilder/curriculum and no staging content changes enter our code pipeline unless explicitly approved by our Restricted Deploy Triage team.
https://codedotorg.atlassian.net/browse/INF-509
Testing story
Deployment strategy
staging
build is successfultest
build is successfullevel builder
if/whentest
build completes.Follow-up work
Re-enable these jobs when lockdown period completes.
Privacy
Security
Caching
PR Checklist: