HeroTransitions / Hero

Elegant transition library for iOS & tvOS
https://HeroTransitions.github.io/Hero/
MIT License
22.03k stars 1.72k forks source link

CI/CD/Shell tools #621

Closed JoeMatt closed 4 years ago

JoeMatt commented 4 years ago

For merge / review after #620

Overview

Add default configs and scripts for shell, CI, CD.

Contents

Makefile

Based on Ludicrous Makefile

Quick access to shell commands for iOS

For help and commands:

make help

image

.editorconfig

https://editorconfig.org/

For users of text editors and other IDEs. VS Code, emacs, Atom, VIM etc support .editorconfig usually with a plugin, to change text formatting based on the file type.

The purpose is to reduce formatting issues with Pull Requests.

travis.ml

A WIP for the testing of CI with Travis CI.

codecov

Codecov is a commercial, free for FOSS projects, test coverage reporting tool. It integrates with XCode coverage reports and can warn on or block Pull Requests that don't meet standards of test coverage.

It can help with the goal of increasing test coverage and encourage contributors to add tests to their PRs without admins having to nag about it. Let the bot do the nagging/shaming.

Integrates with Fastlane and the Makefile also in this PR.

https://codecov.io

Danger

Another bot, allowing creating rules in Ruby (or swift) to automatically warn, comment on, tag, edit, reply to or block Pull Requests based on anything you can code in ruby.

Needs a bot or GitHub action to run on new PRs, or can be run from inside a CI such as Travis, Circle, etc.

Gemfile

Added a gem file so ruby bundle can be used to run a specific version of the common Ruby-based tools included in this PR or to come. Cocoapods, Danger, Fastlane and jazzy all are ruby based.

A Gemfile helps CI/CD servers know which version of tools to use and keeps devs on the same page about what versions of Gems are known to work. (Especially when it comes to Cocoapods which commonly adds backward breaking changes to their DSL)

WIP / TODO

fastlane

Lanes to help with

GitHub bots

Swift PM

Once Swift 5 support is merged I have a Package.swift that can run all the ruby based tools as a swift ... command. eg; swift lint. Basically a replacement for cocoapods utility only pods.


View rendered CHANGELOG.md View rendered docs/ChangeLog.md

JoeMatt commented 4 years ago

I was going to split these up, but rather than make 7 or so PRs, if there are specific objections I can remove those commits since each tool is broken into a commit.

kuyazee commented 4 years ago

I was going to split these up, but rather than make 7 or so PRs, if there are specific objections I can remove those commits since each tool is broken into a commit.

Nah this makes sense