Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yowainwright/developer-ci-benefits

Talk docs—includes CI (Continuous Integration) benefits, description, and setup tips 💡💪
https://github.com/yowainwright/developer-ci-benefits

ci circleci continuous-integration jest talk tools travis-ci unit-testing

Last synced: 3 days ago
JSON representation

Talk docs—includes CI (Continuous Integration) benefits, description, and setup tips 💡💪

Awesome Lists containing this project

README

        

![Developer CI Benefits](https://jeffry.in/assets/developer-ci-benefits/banner.svg?1)

# Talk: Developer CI Benefits

[![CircleCI](https://circleci.com/gh/yowainwright/developer-ci-benefits.svg?style=svg)](https://circleci.com/gh/yowainwright/developer-ci-benefits)

> The Developer CI Benefits talk repository provides documents, links, lists, images, and notes to support the talk. The CI Benefits Talk covers: setup, road to benefits, and benefits of CI. This talk's examples are provided in shell commands and JavaScript but can be applied to other development patterns and languages. If unfamiliar, CI stands for [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration).

----

## Initiatives 📈

The sections below provide context into to flow of the **Developer CI Benefits** talk. This talk uses JavaScript to describe CI but CI patterns in other languages may be similar.

----

> - 🔥 View a [demo](https://github.com/yowainwright/developer-ci-benefits-demo) of techniques described in this repository or discussed during the talk [here](https://github.com/yowainwright/developer-ci-benefits-demo) (also, on [NPM](https://www.npmjs.com/package/developer-ci-benefits-demo)).
> - ✅ View a [demo's dependent](https://github.com/yowainwright/developer-ci-benefits-demo-dependent) and how dependent project is influenced and can be update base on it's parent changes (also, no [NPM](https://www.npmjs.com/package/developer-ci-benefits-demo-dependent)).

----

### Context

This talk is aimed at developers interested in CI benefits. It describes how CI works with examples for getting started with CI. It touches on different tooling and options available for CI. It connects implementation of CI and ways to save time for developers and money for companies.

### Goals

This talk's goals are to describe CI, CI benefits, CI patterns, and provide developers with information to get started with CI.

### Conclusions

Concluding this talk, listeners/developers will have tools to use to start their own CI processes. They will have a brief exploration into different CI patterns. They will be aware of benefits that developers receive after implementing CI.

----

## Bulleted Documents 🔫

Listed below are docs for the talk. The [Docs README](docs/README.md) can be viewed for more docs information.

----

- **[Talk Objectives](docs/01-talk-objectives.md)**
- Talk introduction
- **[What is CI](docs/02-what-is-ci.md)**
- CI definition with context
- **[Key Points](docs/03-key-points.md)**
- The key points covered in the talk
- **[What problems CI Solves](docs/04-ci-solves-problems.md)**
- Defines problems that are solved with CI
- **[Supporting Quotes](docs/05-supporting-quotes.md)**
- Quotes to sell this talks value
- **[Doc Tooling](docs/06-doc-tooling.md)**
- A description and list of repository documentation
- **[Unit Testing](docs/07-unit-testing.md)**
- Introduction to unit testing
- A basic unit testing example in pure JavaScript
- **[Integration Testing](docs/08-integration-testing.md)**
- Introduction to end-to-end testing
- A basic end-to-end test example
- **[Safety Checks](docs/09-safety-checks.md)**
- A list of tools to assist with CI
- **[Running Tests and Checks](docs/10-running-tests-and-checks.md)**
- How to run tests and checks
- **[Implementing CI](docs/11-implementing-ci.md)**
- The basics of implementing CI
- **[Dependency Updates](docs/12-dependency-updates.md)**
- A description of what dependencies are and how to update them
- **[Publishing Repositories](docs/13-publishing-repositories.md)**
- A high level walk through the publishing process NPM packages
- **[Benefits of CI](docs/14-ci-benefits.md)**
- CI benefits
- **[Optimizations](docs/15-optimizations.md)**
- Notes on easy build optimizations
- **[Talk Summation](docs/16-talk-summation.md)**
- A summary of the talk cuz that's it

----

## Reference 📝

Listed below are references used in the construction of this repository.

- **[CircleCI](https://circleci.com/):** the tool used and described in this repository to run CI
- **[Travis](https://travis-ci.org/):** a CI runner alternative to CircleCI used to run CI
- **[Greenkeeper](https://greenkeeper.io/):** a tool that monitors and assists in updating JavaScript packages
- **[NPM](https://www.npmjs.com/):** a package manager for node/JavaScript projects
- **[Jest](https://jestjs.io/):** a unit testing tool for testing JavaScript projects
- **[Puppeteer](https://pptr.dev/):** a Chrome browser tool that provides an API to control Chrome

----

## Contributing

The steps below define how to contribute to this repository.

Contributing to this repository can be done by:

1. forking this repository
1. pushing a commit without bypassing [pre-commit](https://github.com/yowainwright/developer-ci-benefits/blob/master/package.json#L17) messages
1. follow the messaging within the [Pull Request Template](.github/PULL_REQUEST_TEMPLATE.md)

Besides code updates, this repository follows [Contributing Guidelines](CODE_OF_CONDUCT.md) as defined by [Contributing Covenant](https://www.contributor-covenant.org/) for communication within issues and pull request conversations.

For updating and/or adding documents, use the Illustration templates [here](/art).

----

## Shoutouts 🙏

Listed below are people I would like to thank for helping me learn enough to give this talk. Because these people will be referenced in the talk, I'd like to thank them.

- **[Arjan Singh](https://github.com/arjansingh):** Thanks for forcing me to do TDD (Test Driven Development).
- **[Brian Gates](https://github.com/brian-gates):** Thanks for improving caching practices in CircleCi. You've saved me so much time.
- **[Brian Gonzalez](https://github.com/briangonzalez):** Thanks for building a lot of cool s**t always—projects referenced in this talk; starting [Harmless Changes](https://github.com/dollarshaveclub/harmless-changes).
- **[David Inoa](https://github.com/davidinoa):** Thanks for helping make this project better, reaching out about it, and your CodePen.
- **[Jon Ong](http://github.com/jonathanong):** You're brilliant and I got to watch you build awesome project—including projects for CI—like [gh-automerge](https://github.com/jonathanong/gh-automerge).
- **[Matt Young](https://github.com/someguynamedmatt):** Thanks doing a bunch of cool CI projects—like **auto-update**—make it public!
- **[Peter Cadwell](https://github.com/petercadwell):** Thanks for helping this repository much better!
- **[Rouzbeh Sarrafieh](https://github.com/rouzbeh84):** Thanks for helping me with this talk and always making software seem so fun.