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

Update the existing Build Images workflow to build all FBPCS images and run on pull requests. #2213

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

musebc
Copy link
Contributor

@musebc musebc commented Mar 20, 2023

Summary:

Context

We have seen some issues slip through recently that have caused our B&R system to be unstable. Right now, the only testing that we do on diffs is to see if the onedocker image builds. This is insufficient to ensure that changes don't break our B&R system.

The new flow for the "Build, Test, and Publish the FBPCS Docker Images" workflow will be to build and test every pull request or push to main with the basic, non-GraphAPI end to end tests. For pull requests, it will block the landing of the diff until the tests builds pass. For merges to main, it will create a task and assign it to the person who pushed the commit. This will provide 2 benefits:

  1. For pull requests, this adds a higher bar of testing at Diff time. This should block potential bugs from slipping through to block our release flow
  2. For merges to main, this will make the tasks more accurate. Since it's running on every commit, it will know which commit likely broke the tests. Right now, it only runs for each bundle from conveyor which might include multiple changes and may not assign the task to the right developer.

Workflow Design

The Build, Test, and Publish the FBPCS Docker Images workflow follows these steps:

  1. Build the Coordinator Image
  2. In parallel, build the EMP Games and Data Processing images
    1. When those are done, build the bundled OneDocker image
  3. Once all images are built successfully, run E2E tests

{F898944897}

Updates for V15

I've removed the E2E testing because there is a tag conflict with the RC OneDocker image and will require more effort to include E2E testing. For now, this is still usefull as it makes the builds more like the production release process and includes the coordinator image.

This Diff

This diff updates the already existing workflow that would build images on pushes to main to also build on pull requests and to test the images with the local (non-GraphAPI) E2E tests.

Differential Revision: D44229635

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported labels Mar 20, 2023
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D44229635

…nd run on pull requests. (facebookresearch#2213)

Summary:
Pull Request resolved: facebookresearch#2213

## Context
We have seen some issues slip through recently that have caused our B&R system to be unstable. Right now, the only testing that we do on diffs is to see if the onedocker image builds. This is insufficient to ensure that changes don't break our B&R system.

The new flow for the "Build, Test, and Publish the FBPCS Docker Images" workflow will be to build ~~and test~~ every pull request or push to main ~~with the basic, non-GraphAPI end to end tests~~. For pull requests, it will block the landing of the diff until the ~~tests~~ builds pass. For merges to main, it will create a task and assign it to the person who pushed the commit. This will provide 2 benefits:
1. For pull requests, this adds a higher bar of testing at Diff time. This should block potential bugs from slipping through to block our release flow
2. For merges to main, this will make the tasks more accurate. Since it's running on every commit, it will know which commit likely broke the tests. Right now, it only runs for each bundle from conveyor which might include multiple changes and may not assign the task to the right developer.

## Workflow Design
The Build, Test, and Publish the FBPCS Docker Images workflow follows these steps:
1. Build the Coordinator Image
2. In parallel, build the EMP Games and Data Processing images
    1. When those are done, build the bundled OneDocker image
3. ~~Once all images are built successfully, run E2E tests~~

{F898944897}

## Updates for V15
I've removed the E2E testing because there is a tag conflict with the RC OneDocker image and will require more effort to include E2E testing. For now, this is still usefull as it makes the builds more like the production release process and includes the coordinator image.

## This Diff
This diff updates the already existing workflow that would build images on pushes to main to also build on pull requests and to test the images with the local (non-GraphAPI) E2E tests.

Differential Revision: D44229635

fbshipit-source-id: 3742ec2a4abb4f969aaa277f09d1615578269096
@musebc musebc force-pushed the export-D44229635 branch from 4589ac8 to 6b32f47 Compare April 5, 2023 20:46
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D44229635

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants