singer-io / tap-facebook

Singer.io tap for Facebook Marketing API
GNU Affero General Public License v3.0
110 stars 141 forks source link

Parallelize CircleCI #163

Closed luandy64 closed 3 years ago

luandy64 commented 3 years ago

Summary of Changes

Description of change

Smaller Jobs

This PR breaks the one build job into several jobs that we tell Circle to run in parallel. The workflow starts by creating the virtualenv as usual. Then we fan out and allow every test to run. There's a final build step that acts as a check that all of the tests were green. If any test fails, the build step fails and blocks a PR from merging.

Auto Deploy

This PR also adds a new job to the commit workflow, deploy. When the version changes in the PR and the squash commit is made to master, the workflow attempts to deploy a new version. If there is a clashing git tag, the job fails and the deploy is blocked.

Manual QA steps

Risks

There's a downside to allowing the deploy job fail if git tag encounters a clashing tag. Our metrics in Circle will start to reflect the failing jobs

Rollback steps