Skip to content
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

Merged
merged 2 commits into from Nov 21, 2021

Conversation

sureshc
Copy link
Contributor

@sureshc sureshc commented Nov 19, 2021

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

  1. Merge Pull Request and verify that staging build is successful
  2. Verify test build is successful
  3. Deploy latest successful ("Green") test commit to level builder if/when test build completes.

Follow-up work

Re-enable these jobs when lockdown period completes.

Privacy

Security

Caching

PR Checklist:

  • Tests provide adequate coverage
  • Privacy and Security impacts have been assessed
  • Code is well-commented
  • New features are translatable or updates will not break translations
  • Relevant documentation has been added or updated
  • User impact is well-understood and desirable
  • Pull Request is labeled appropriately
  • Follow-up work items (including potential tech debt) are tracked and linked

@@ -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')
Copy link
Member

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:

  1. also disable deploy_to_levelbuilder on line 71, or
  2. 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.

Copy link
Member

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.

Copy link
Member

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.

Copy link
Contributor Author

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.

Copy link
Contributor Author

@sureshc sureshc Nov 20, 2021

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.

@sureshc sureshc requested a review from a team November 20, 2021 00:56
@cat5inthecradle
Copy link
Contributor

I don't know too much about the content pipeline, but syntactically this looks good.

@sureshc sureshc merged commit e03ae4c into staging Nov 21, 2021
@sureshc sureshc deleted the pause-content-pipeline-for-hourofcode-lockdown branch November 21, 2021 22:54
@dmcavoy
Copy link
Contributor

dmcavoy commented Nov 22, 2021

Could these be tied to a DCDO flag for the future? Maybe one we are already setting around this time for other HOC things?

@davidsbailey
Copy link
Member

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 CDO flag would suffice. I don't think we'd want to use an existing HOC flag -- the process of launching HOC for our users should not be directly tied to the state of our staging lockdown.

snickell pushed a commit that referenced this pull request Feb 3, 2024
…r-hourofcode-lockdown

Pause content pipeline during Hour of Code lockdown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants