Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 1 month ago
JSON representation
Talk docs—includes CI (Continuous Integration) benefits, description, and setup tips 💡💪
- Host: GitHub
- URL: https://github.com/yowainwright/developer-ci-benefits
- Owner: yowainwright
- License: mit
- Created: 2018-06-11T00:47:01.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-07-18T19:58:35.000Z (over 1 year ago)
- Last Synced: 2024-11-02T20:32:45.637Z (about 2 months ago)
- Topics: ci, circleci, continuous-integration, jest, talk, tools, travis-ci, unit-testing
- Homepage: https://bit.ly/2NGQqiJ
- Size: 1.44 MB
- Stars: 30
- Watchers: 5
- Forks: 5
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
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.