#frontend engineers: What is your dream CI/CD pipeline? ๐Ÿฅฐ

Here is what we have at @contrahq ๐Ÿ‘‡๐Ÿ‘‡๐Ÿ‘‡
precommit and prepush #git hooks are used to catch issues before they are pushed upstream.

* precommit runs only on staged files (takes few seconds)
* prepush runs #eslint #typescript and unit tests (takes up to 20 seconds)

Every time a commit is pushed:
1) We build a #docker image & bundle cypress and other development dependencies. This allows us to run all subsequent tasks using the same Docker image.

It is fast. Takes 2-4 minutes. ๐ŸŽ
2) We run 5 tasks concurrently to validate our build.

* #ESLint
* #TypeScript
* #jest Unit tests
* #cypress Integration tests
* Fetch, validate & compile #GraphQL schema
3) For every commit, we deploy a review app.

Review app:

* Allows anyone to preview what is being developed.
* Allows anyone to preview our #storybook.
* Allows to leave visual reviews (WIP)
4) Before changes can be merged to the main branch, we use #GitLab to mandate at least 1 review from the team.

In addition, we use #GitLab review system to advise who is the best person to review the code based on which files have changed.
5) When changes are merged to the main branch, we automatically deploy to production.

We use #argocd to implement #gitops. This means that we have a detail log of everything that has been deployed, and in case of a critical error, reverting is as simple as "git revert" ๐Ÿงพ
6) Finally, we push changes regularly to the main branch. Small incremental updates, dozens of times a day.

This means that if things break, they are typically small things and easy to revert / patch.

We use feature flags to hide any WIP features. ๐Ÿณ
What is your #devops setup? ๐Ÿ˜‡
Also, if you want to work in an engineering team that deeply cares about developer experience, we are hiring ๐Ÿ˜‰

weworkremotely.com/remote-jobs/coโ€ฆ

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with Gajus Kuizinas

Gajus Kuizinas Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @kuizinas

14 Jan
We've discovered something that has become a major part of our culture overnight ๐Ÿคฏ

We've added @loom videos to our workflow & our entire @contrahq is hyppppped ๐Ÿ”ฅ

CONTINUE READING ๐Ÿ‘‡๐Ÿ‘‡๐Ÿ‘‡
If there is one thing I miss about working in an office, it is the moments that we share when we achieve milestones. ๐Ÿ†

Text cannot communicate the same emotions โค๏ธ that are seen in our faces and voices when we've _just_ hit a milestone ๐Ÿ & turn to our buddies to celebrate ๐ŸŽ‰
So we've started sharing short videos that capture the excitement any time any of us hit a milestone... Well, this is how it is going ๐Ÿคฉ

(Thank you @samtaylorr15 for allowing me to put you on a spot here! I just love this video โค๏ธ)
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!