Skip to content
Snippets Groups Projects

Add Pipeline Schedules that supersedes experimental Trigger Schedule

Merged Zeger-Jan van de Weg requested to merge zj-better-view-pipeline-schedule into master
All threads resolved!

/cc @dosuken123 @brycepj @ayufan

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/30882

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • @zj I clicked around the UI -- all looks good. Thanks for making my life easier 😄

    Edited by username-removed-408230
  • @zj What's the best way to expose timezone data for the timezone dropdown? I see that Rufus depends on data from TZInfo... perhaps that can export timezone data we can expose as JSON?

    Edited by username-removed-408230
    • Author Developer
      Resolved by Zeger-Jan van de Weg

      @zj What's the best way to expose timezone data for the timezone dropdown? I see that Rufus depends on data from TZInfo... perhaps that can export timezone data we can expose as JSON?

      @brycepj Not sure what you mean, do you want all timezones exposed? Because we already expose the timezone of the schedule under schedule.cron_timezone?

  • Zeger-Jan van de Weg changed milestone to %9.2

    changed milestone to %9.2

  • Zeger-Jan van de Weg marked the checklist item Changelog entry added, if necessary as completed

    marked the checklist item Changelog entry added, if necessary as completed

  • The other things to do:

    • drop dependency on trigger,
    • add the column to pipeline to indicate a used schedule: schedule_id?
    • update CreatePipelineService to accept schedule.

    Btw. wouldn't it be better to name it: Ci::Schedule? Pipeline seems redundant here.

  • added 2 commits

    Compare with previous version

  • Zeger-Jan van de Weg marked as a Work In Progress from 139b0a8c

    marked as a Work In Progress from 139b0a8c

  • Author Developer

    @ayufan I feel Schedule as model is too generic, I know we namespace it under Ci but still I'm not sure about it. Either way, it doesn't really matter to me, PipelineSchedule just felt right as its exactly that. Also, schedule is quite generic, and maybe we'd like to schedule other stuff in the futures so taking the Schedule as model seemed a bit greedy. Could you confirm you want it renamed?

    Edited by Zeger-Jan van de Weg
  • I'm fine with PipelineSchedule.

  • mentioned in merge request !10917 (merged)

  • Zeger-Jan van de Weg resolved all discussions

    resolved all discussions

  • Zeger-Jan van de Weg marked the checklist item Added for this feature/bug as completed

    marked the checklist item Added for this feature/bug as completed

  • Zeger-Jan van de Weg marked the checklist item Documentation created/updated as completed

    marked the checklist item Documentation created/updated as completed

  • added 271 commits

    • 7f0fb529...080aac05 - 261 commits from branch master
    • 89bc18d9 - Basic controller and views for pipeline schedules
    • f16ffc5c - First iteration frontend for PipelineSchedules
    • 03ce8db1 - Remove unneeded code, and add test
    • 3b804634 - Add Pipeline Schedules table
    • 20d96040 - Add pipeline_schedule_id to ci_pipelines
    • dd0d568f - Migrate data from trigger schedules to pipeline schedules
    • 17baaddc - Drop ci_trigger_schedules table
    • c4d0b1fa - Rewrite backend to handle the PipelineSchedule model
    • bb5a8caa - Add documentation on Pipeline Schedules
    • 26f16c25 - Add pipeline schedules' abilities

    Compare with previous version

  • Author Developer

    Could you review once more, @ayufan?

  • mentioned in issue #31250 (closed)

  • added 1 commit

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • James Lopez added 1 commit

    added 1 commit

    • 026c2223 - add missing pipeline_schedule to all_models.yml

    Compare with previous version

  • added 178 commits

    • 026c2223...e9f3d245 - 166 commits from branch master
    • c3993d11 - Basic controller and views for pipeline schedules
    • 848860b8 - First iteration frontend for PipelineSchedules
    • a94fdffc - Remove unneeded code, and add test
    • 40f29c47 - Add Pipeline Schedules table
    • 9c7c6be8 - Add pipeline_schedule_id to ci_pipelines
    • 306c5ebb - Migrate data from trigger schedules to pipeline schedules
    • 59d4d3a4 - Drop ci_trigger_schedules table
    • 46e23f9e - Rewrite backend to handle the PipelineSchedule model
    • 557f1f4d - Add documentation on Pipeline Schedules
    • ce4917fa - Add pipeline schedules' abilities
    • 04d48fbb - Fix Import Export tests, reintroduce triggers factory
    • 8e5d2d45 - Remove old UI for adding trigger schedules

    Compare with previous version

  • Jacob Schatz added 1 commit

    added 1 commit

    • 6ace1c73 - Add initial pipeline schedule form styling.

    Compare with previous version

  • added 145 commits

    • 6ace1c73...93e83afb - 133 commits from branch master
    • fdeac968 - Basic controller and views for pipeline schedules
    • bb56da32 - First iteration frontend for PipelineSchedules
    • cb47377f - Remove unneeded code, and add test
    • 9a69a463 - Add Pipeline Schedules table
    • db67b612 - Add pipeline_schedule_id to ci_pipelines
    • df5a1dd1 - Migrate data from trigger schedules to pipeline schedules
    • 72eaed13 - Drop ci_trigger_schedules table
    • 27fdeef5 - Rewrite backend to handle the PipelineSchedule model
    • d0db59c0 - Add documentation on Pipeline Schedules
    • 4dabb872 - Add pipeline schedules' abilities
    • a236dab6 - Fix Import Export tests, reintroduce triggers factory
    • d1e5458c - Remove old UI for adding trigger schedules

    Compare with previous version

  • @zj I left a couple notes. Nice work with this one! 👍 Can you provide some screenshots? It also appears that we have a few legitimate failures within the CI pipeline.

  • assigned to @zj

  • @zj Looking at the migrations I don't see why this would require downtime if the usual zero downtime approach is taken (and I'm not sure why this isn't the case already):

    1. Add the new structures
    2. Migrate any data necessary
    3. Deploy the code
    4. Use a post-deployment migration to migrate any remaining data
    5. Use a post-deployment migration to drop any old tables/columns/etc

    You don't need downtime for this, and it can all be done in a single release.

    Edited by yorickpeterse-staging
  • Author Developer

    @yorickpeterse I wasn't claiming they did, I claimed in the current way they needed downtime.

    Thanks for taking a look

  • added 70 commits

    • d1e5458c...6068b863 - 57 commits from branch master
    • eaef2bd1 - Basic controller and views for pipeline schedules
    • 1ed44f1b - First iteration frontend for PipelineSchedules
    • d54fc805 - Remove unneeded code, and add test
    • 5c7e584d - Add Pipeline Schedules table
    • 4e0c31a3 - Add pipeline_schedule_id to ci_pipelines
    • 219f61fc - Migrate data from trigger schedules to pipeline schedules
    • d5edcf4c - Drop ci_trigger_schedules table
    • 45b458db - Rewrite backend to handle the PipelineSchedule model
    • 715d8d5f - Add documentation on Pipeline Schedules
    • a9944a25 - Add pipeline schedules' abilities
    • 9cc70c0a - Fix Import Export tests, reintroduce triggers factory
    • da852277 - Remove old UI for adding trigger schedules
    • 680ed024 - Incorporate review

    Compare with previous version

  • Author Developer

    @grzesiek Could you take another look? I've incorporated your feedback, except for the Frontend stuff, as that is done in a different MR

  • @zj after rebasing I'm seeing some errors on the index and new pages respectively.

    ArgumentError at /h5bp/html5-boilerplate/pipeline_schedules/new -- 
    First argument in form cannot contain nil or be empty

    Screen_Shot_2017-05-03_at_6.36.10_PM

    undefined local variable or method `pipeline_schedule' for #<Ci::PipelineSchedule:0x007fb531b7a780>
    Did you mean?  pipelines

    Screen_Shot_2017-05-03_at_6.36.00_PM

    Both point to the top-level form element:

    Screen_Shot_2017-05-03_at_6.40.30_PM

    Is there something you know of that's a WIP that's causing this?

    Edited by username-removed-408230
  • Author Developer

    @brycepj Its called @schedule now. I've pinged you on that discussion.

  • James Lopez mentioned in merge request !11032 (merged)

    mentioned in merge request !11032 (merged)

  • It looks cool I must say.

    I would still improve migrations to make them more granular.

    cc @zj

  • assigned to @zj

  • I’m looking at PipelineSchedule code and I don’t see a lot of controller tests for everything that is added there. Ex. Do I miss tests for Take ownership, is this expected? I don’t see tests for “choosing the schedule”. I don’t see tests for validating inputs and saving them. I don’t see a test for destroying schedule. Also, some permission checks are commented out and not tested too.

    Related to https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10917.

  • added 30 commits

    • 4e2fea6b - Get frontend mostly working to merge back into main branch.
    • 3ed60048 - Move inputNameAttribute to data from props.
    • 60a74107 - Remove cruft from form.
    • 2995854e - Change intro-message to callout.
    • 260fad08 - Clean up timezone dropdown.
    • e3d9b2a7 - Fix undefined cronInputName refs.
    • 711c2342 - Singularize pipeline_form refs.
    • 0c4666f9 - Get params exposed to the view.
    • 42c0f361 - Use glDropdown for target branch selector.
    • d5276629 - Fix up formatOffset method.
    • 7278c8dd - Fix redirect on update.
    • 2ff18c7e - Style pipeline schedules table.
    • 9a117335 - Uncomment permissions check for destroying schedule.
    • 9f40d609 - Move timezone data construction to a helper.
    • d939414d - Add specs for pipeline schedules table.
    • 18e51ce2 - Fix NaNs in timezone dropdown and capitalization.
    • 6844de8a - Fix styling on pipeline schedules user callout.
    • a10654ff - Commit in progress feature spec.
    • d625ce3a - Fix styles of interval pattern input.
    • 35036565 - Remove cookie test flag.
    • f93a321f - Update field errors on model change.
    • ab773ddc - Add validation for dropdowns.
    • f8f1bd75 - Assign dropdowns per eslint.
    • 8a4e10ee - Clean up form bundle.
    • 36b6c3c5 - Fix delete button permissions.
    • 4c16af8e - Finish stubbing integration test.
    • 45f72c62 - Spec and bug fixes, per ZJ.
    • 529ec72c - Confirm pipeline cancel.
    • 349e1425 - Use getElementById for validation selection.
    • c090e261 - Improve button styles.

    Compare with previous version

  • added 1 commit

    • 558a799a - Fix comment on updateFormValidityState.

    Compare with previous version

  • added 2 commits

    • e204ddc5 - Mock updateFormValidityState in spec.
    • 3eb9c65f - Merge branch 'zj-better-view-pipeline-schedule' of gitlab.com:gitlab-org/gitlab-…

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • @zj Do you know what's causing the ActiveRecord errors here?

    Also, there are some legitimate looking backend failures happening here, here & here.

    Edited by username-removed-408230
  • Author Developer

    @brycepj Timezone selection doesn't work, seeing a few JS error there, which your own tests actually caught? Whats up there?

  • Author Developer

    @brycepj The same for selecting a target branch. Were you and @jschatz1 aware of these errors?

  • added 742 commits

    • a92e5454...56fb7823 - 694 commits from branch master
    • 962b8fea - Basic controller and views for pipeline schedules
    • 56e651a9 - First iteration frontend for PipelineSchedules
    • 512614e7 - Remove unneeded code, and add test
    • a9a4f2d5 - Add Pipeline Schedules table
    • 75fe2d59 - Add pipeline_schedule_id to ci_pipelines
    • 8024063a - Migrate data from trigger schedules to pipeline schedules
    • c9a50793 - Drop ci_trigger_schedules table
    • 52ee3230 - Rewrite backend to handle the PipelineSchedule model
    • 478ca1b7 - Add documentation on Pipeline Schedules
    • a897deb4 - Add pipeline schedules' abilities
    • 2360cc17 - Fix Import Export tests, reintroduce triggers factory
    • 8464aff2 - Remove old UI for adding trigger schedules
    • 81d7c944 - Incorporate review
    • 59b2ea71 - Get frontend mostly working to merge back into main branch.
    • a607738a - Move inputNameAttribute to data from props.
    • 860c1157 - Remove cruft from form.
    • 556afd61 - Change intro-message to callout.
    • f760f4bc - Clean up timezone dropdown.
    • 9fa28779 - Fix undefined cronInputName refs.
    • 8b40eccd - Singularize pipeline_form refs.
    • 273edba5 - Get params exposed to the view.
    • 61ab420b - Use glDropdown for target branch selector.
    • 82838e66 - Fix up formatOffset method.
    • 41f90018 - Fix redirect on update.
    • 78f65eed - Style pipeline schedules table.
    • ef9370c8 - Uncomment permissions check for destroying schedule.
    • 054e5c40 - Move timezone data construction to a helper.
    • 5c1beb53 - Add specs for pipeline schedules table.
    • 14d16c95 - Fix NaNs in timezone dropdown and capitalization.
    • 9ddb6c40 - Fix styling on pipeline schedules user callout.
    • f2950266 - Commit in progress feature spec.
    • 8851df53 - Fix styles of interval pattern input.
    • cd7e3b29 - Remove cookie test flag.
    • a6a36981 - Update field errors on model change.
    • e543995a - Add validation for dropdowns.
    • 96b1bf39 - Assign dropdowns per eslint.
    • 907d6e2d - Clean up form bundle.
    • 6d1d9ae3 - Fix delete button permissions.
    • fbdd8fd0 - Finish stubbing integration test.
    • cdefb0ec - Spec and bug fixes, per ZJ.
    • 211fcb59 - Confirm pipeline cancel.
    • f6974dad - Use getElementById for validation selection.
    • 550f3d78 - Improve button styles.
    • dde464bb - Fix comment on updateFormValidityState.
    • c551664b - Add index to ci_pipelines.pipeline_schedule_id
    • 6838cad4 - Extract foreigh key adding to own migration
    • b95def15 - Clean diff for db/schema.rb
    • f29bacaf - Rewrite integration tests for pipeline schedules

    Compare with previous version

  • Zeger-Jan van de Weg unmarked as a Work In Progress

    unmarked as a Work In Progress

  • added 2 commits

    • 60711416 - Rewrite integration tests for pipeline schedules
    • cc8fa9ed - Bump the import export version

    Compare with previous version

  • @zj @brycepj There are test failures and my comments and @zj comments that need to be resolved. Nice work!

  • added 2 commits

    • 4ceff622 - Fixes test failures on pipeline schedules
    • 1e9f373a - Add foreign key on pipeline_schedule_id for pipelines

    Compare with previous version

  • added 2 commits

    • 25d3e8e4 - Shush scss and haml lint.
    • 960c5e63 - Mock updateFormValidityState in spec.

    Compare with previous version

  • @brycepj The same for selecting a target branch. Were you and @jschatz1 aware of these errors?

    @zj Looks like breaking changes were made to the glDropdown API 2 days ago, so when you rebased against master, both of our instantiations of it (target branch and timezones) broke.

    Edited by username-removed-408230
  • added 1 commit

    • 9368b0d2 - Fix dropdowns after glDropdown breaking changes.

    Compare with previous version

  • added 1 commit

    • 28cfd62e - Add screenshots to feature docs.

    Compare with previous version

  • added 1 commit

    • 9b4dfdef - Add screenshot with take ownership button.

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 1 commit

    • acf2aa30 - Fix taking ownership screenshot ref.

    Compare with previous version

  • @zj This feature spec failure is confusing. It's looking for 'pipeline schedule' and not finding it. Yet in the screenshot, the text is clearly present:

    screenshot_2017-05-06-20-43-51.234

    There are also hundreds of karma failures that have nothing to do with ours. I retried and they stuck around. I'm assuming if we rebase, it will be fixed.

    Edited by username-removed-408230
  • added 1 commit

    • e6a2bdf8 - Ensure intervalPatternMount before setting initialCronInterval.

    Compare with previous version

  • added 116 commits

    • a6836c6d...6ad3814e - 56 commits from branch master
    • dbb43360 - Basic controller and views for pipeline schedules
    • 7b3e065d - First iteration frontend for PipelineSchedules
    • b151fe35 - Remove unneeded code, and add test
    • 2cd2bdfd - Add Pipeline Schedules table
    • 98029bdf - Add pipeline_schedule_id to ci_pipelines
    • 3ca9a44c - Migrate data from trigger schedules to pipeline schedules
    • c2b43853 - Drop ci_trigger_schedules table
    • 4e60c7d2 - Rewrite backend to handle the PipelineSchedule model
    • f77775ad - Add documentation on Pipeline Schedules
    • db3443d7 - Add pipeline schedules' abilities
    • cdebcc0b - Fix Import Export tests, reintroduce triggers factory
    • e8ce7abc - Remove old UI for adding trigger schedules
    • 1ef0f6fa - Incorporate review
    • bd4baecf - Get frontend mostly working to merge back into main branch.
    • 7e28d8be - Move inputNameAttribute to data from props.
    • e8004d26 - Remove cruft from form.
    • bfaf2087 - Change intro-message to callout.
    • e23e5bb3 - Clean up timezone dropdown.
    • 0f1a94c4 - Fix undefined cronInputName refs.
    • 226a903d - Singularize pipeline_form refs.
    • c120fc76 - Get params exposed to the view.
    • cb6d1de9 - Use glDropdown for target branch selector.
    • 31290377 - Fix up formatOffset method.
    • 2812ed70 - Fix redirect on update.
    • 1daf36f8 - Style pipeline schedules table.
    • e116702a - Uncomment permissions check for destroying schedule.
    • 897e32a1 - Move timezone data construction to a helper.
    • 465632ba - Add specs for pipeline schedules table.
    • 9064bc31 - Fix NaNs in timezone dropdown and capitalization.
    • 54da6742 - Fix styling on pipeline schedules user callout.
    • 55a62dee - Commit in progress feature spec.
    • deb9b294 - Fix styles of interval pattern input.
    • 3c75eb0d - Remove cookie test flag.
    • e607d902 - Update field errors on model change.
    • c6cbf2d4 - Add validation for dropdowns.
    • 8a883978 - Assign dropdowns per eslint.
    • 4d3c3602 - Clean up form bundle.
    • 29ce518c - Fix delete button permissions.
    • baec018c - Finish stubbing integration test.
    • d19cc93a - Spec and bug fixes, per ZJ.
    • b9fd57a1 - Confirm pipeline cancel.
    • c7f63a5f - Use getElementById for validation selection.
    • cc9fb5f4 - Improve button styles.
    • f20916bf - Fix comment on updateFormValidityState.
    • af9e2d0f - Add index to ci_pipelines.pipeline_schedule_id
    • c59744fa - Extract foreigh key adding to own migration
    • 799fc09b - Clean diff for db/schema.rb
    • ae067568 - Rewrite integration tests for pipeline schedules
    • a6505988 - Bump the import export version
    • 8dfac61a - Fixes test failures on pipeline schedules
    • 287c2692 - Add foreign key on pipeline_schedule_id for pipelines
    • 9ca4d09b - Shush scss and haml lint.
    • d1bed742 - Mock updateFormValidityState in spec.
    • a92d473b - Fix dropdowns after glDropdown breaking changes.
    • d254e53f - Add screenshots to feature docs.
    • 0461701c - Add screenshot with take ownership button.
    • a3863f44 - Fix taking ownership screenshot ref.
    • 72580b61 - Satisfy rubocop
    • bfeea0d3 - Ensure intervalPatternMount before setting initialCronInterval.
    • 968c888d - Make glDropdown params consistent.

    Compare with previous version

  • added 1 commit

    • a6836c6d - 1 commit from branch master

    Compare with previous version

  • Author Developer

    @brycepj That is not content, its a field...

  • Zeger-Jan van de Weg marked the checklist item Remove old view, and delete those tests as completed

    marked the checklist item Remove old view, and delete those tests as completed

  • added 1 commit

    • 217e5542 - Fix feature spec pipeline schedules

    Compare with previous version

  • @zj It looks nice. I don't have any other comments, other than me checking all database relations on the manual testing (tomorrow) and you getting tests to be green.

  • @zj @brycepj Is frontend done? Who should review that?

    Edited by Kamil Trzcińśki
  • @ayufan @jschatz1 already reviewed and approved the frontend in my MR. Since the only changes we've made since have been fixing spec failures and bugs i think we're good to go.

    Edited by username-removed-408230
  • added 2 commits

    • 929b8e27 - Don't overwrite gl in interval pattern spec. 🤦
    • f2dbd82d - Merge branch 'zj-better-view-pipeline-schedule' of gitlab.com:gitlab-org/gitlab-…

    Compare with previous version

  • added 1 commit

    Compare with previous version

  • added 1 commit

    • 11c90e90 - Remove debugger statement in the frontend

    Compare with previous version

  • added 1 commit

    • 20d54563 - Remove debugger statement in the frontend

    Compare with previous version

  • added 1 commit

    • e7fa794c - Update function refs in interval pattern spec.

    Compare with previous version

  • added 1 commit

    • a9618849 - Use a fixture to force phantom to emit click event.

    Compare with previous version

  • Kamil Trzcińśki changed title from Better view pipeline schedule to Add Pipeline Schedules that supersedes experimental Trigger Schedule

    changed title from Better view pipeline schedule to Add Pipeline Schedules that supersedes experimental Trigger Schedule

  • Kamil Trzcińśki
  • added Deliverable ~901060 frontend labels

  • Kamil Trzcińśki approved this merge request

    approved this merge request

  • Kamil Trzcińśki resolved all discussions

    resolved all discussions

  • Kamil Trzcińśki resolved all discussions

    resolved all discussions

  • mentioned in issue #31932 (closed)

  • Kamil Trzcińśki enabled an automatic merge when the pipeline for a9618849 succeeds

    enabled an automatic merge when the pipeline for a9618849 succeeds

  • mentioned in commit 66b225d4

  • mentioned in issue #32032 (closed)

  • mentioned in merge request !12757 (merged)

  • Please register or sign in to reply
    Loading