├── CONTRIBUTING.md ├── LICENSE └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | **tl;dr: Update the README.md and create a Pull Request with new and useful resources!** 4 | 5 | When contributing to this repository, please first discuss the change you wish to make via issue, 6 | email, or any other method with the owners of this repository before making a change. 7 | 8 | Please note we have a code of conduct, please follow it in all your interactions with the project. 9 | 10 | ## Pull Request Process 11 | 12 | 1. Update the README.md with new content. 13 | 2. You may merge the Pull Request in once you have the sign-off of another developer, or if you 14 | do not have permission to do that, you may request the reviewer to merge it for you. 15 | 16 | ## Code of Conduct 17 | 18 | ### Our Pledge 19 | 20 | In the interest of fostering an open and welcoming environment, we as 21 | contributors and maintainers pledge to making participation in our project and 22 | our community a harassment-free experience for everyone, regardless of age, body 23 | size, disability, ethnicity, gender identity and expression, level of experience, 24 | nationality, personal appearance, race, religion, or sexual identity and 25 | orientation. 26 | 27 | ### Our Standards 28 | 29 | Examples of behavior that contributes to creating a positive environment 30 | include: 31 | 32 | * Using welcoming and inclusive language 33 | * Being respectful of differing viewpoints and experiences 34 | * Gracefully accepting constructive criticism 35 | * Focusing on what is best for the community 36 | * Showing empathy towards other community members 37 | 38 | Examples of unacceptable behavior by participants include: 39 | 40 | * The use of sexualized language or imagery and unwelcome sexual attention or 41 | advances 42 | * Trolling, insulting/derogatory comments, and personal or political attacks 43 | * Public or private harassment 44 | * Publishing others' private information, such as a physical or electronic 45 | address, without explicit permission 46 | * Other conduct which could reasonably be considered inappropriate in a 47 | professional setting 48 | 49 | ### Our Responsibilities 50 | 51 | Project maintainers are responsible for clarifying the standards of acceptable 52 | behavior and are expected to take appropriate and fair corrective action in 53 | response to any instances of unacceptable behavior. 54 | 55 | Project maintainers have the right and responsibility to remove, edit, or 56 | reject comments, commits, code, wiki edits, issues, and other contributions 57 | that are not aligned to this Code of Conduct, or to ban temporarily or 58 | permanently any contributor for other behaviors that they deem inappropriate, 59 | threatening, offensive, or harmful. 60 | 61 | ### Scope 62 | 63 | This Code of Conduct applies both within project spaces and in public spaces 64 | when an individual is representing the project or its community. It also applies to 65 | the content shared on this repository. 66 | 67 | ### Enforcement 68 | 69 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 70 | reported by contacting the project team. All 71 | complaints will be reviewed and investigated and will result in a response that 72 | is deemed necessary and appropriate to the circumstances. The project team is 73 | obligated to maintain confidentiality with regard to the reporter of an incident. 74 | Further details of specific enforcement policies may be posted separately. 75 | 76 | Project maintainers who do not follow or enforce the Code of Conduct in good 77 | faith may face temporary or permanent repercussions as determined by other 78 | members of the project's leadership. 79 | 80 | ### Attribution 81 | 82 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 83 | available at [http://contributor-covenant.org/version/1/4][version] 84 | 85 | [homepage]: http://contributor-covenant.org 86 | [version]: http://contributor-covenant.org/version/1/4/ 87 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Alejandro Rodríguez Salamanca 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mobile-devops 2 | A curated list of resources for mobile devops, including blog posts and talks about tooling and infrastructure for mobile apps 3 | 4 | ## Why? 5 | Mobile devops and Mobile tooling differs from the devops movement as some of the tools and practices are not applicable 6 | to the way the mobile ecosystem works. This list contains useful resources for people interested in mobile tooling, mobile infrastructure and how to apply best practices to the mobile ecosystem from a devops point of view. 7 | 8 | ## Contributing 9 | Contributions are encouraged! If you have run into interesting resources that can fit into this repository, create a Pull 10 | Request editing this file and we will add them. Before contributing, take a few minutes to read our [contributions guidelines and code of conduct](./CONTRIBUTING.md) 11 | 12 | ## Blog posts 13 | - [Mobile Release Engineering at Scale with Shipit Mobile](https://engineering.shopify.com/blogs/engineering/mobile-release-engineering-scale-shipit-mobile) 14 | - [Scaling iOS CI with Anka](https://engineering.shopify.com/blogs/engineering/scaling-ios-ci-with-anka) 15 | - [Mobile Tophatting at Shopify](https://engineering.shopify.com/blogs/engineering/mobile-tophatting-at-shopify-1) 16 | - [Realtime Mobile Performance Logging](https://medium.com/spaceapetech/realtime-mobile-performance-logging-1e319277d970) 17 | - [How Etsy Ships Apps](https://codeascraft.com/2017/05/15/how-etsy-ships-apps/) 18 | - [DevOps for mobile apps challenges and best practices](https://developer.ibm.com/articles/mo-bestdevops-mobileapps/) 19 | - [Release Quality and Mobile Trains: SoundCloud releases](https://developers.soundcloud.com/blog/quality-mobile-trains) 20 | 21 | ## Talks 22 | - [Orchestrating mobile app releases](https://www.youtube.com/watch?v=VZBqaEnUhxE) 23 | - [The Pain of Mobile Release Engineering at Scale](https://www.usenix.org/conference/ures14west/summit-program/presentation/legnitto) 24 | 25 | ### CI 26 | - [GOTO 2018 • 40 Jenkins Features & Plugins You Wished You had Known about Before! • Joep Weijers](https://www.youtube.com/watch?v=3dYM0XUrXHc) 27 | - [Simple and portable CI using Docker | Engineering | Airbnb](https://www.youtube.com/watch?v=dEaNxGBTmDc) 28 | 29 | ### iOS 30 | - [Behind the Scenes of the Xcode Build Process - WWDC 2018](https://developer.apple.com/wwdc18/415) 31 | - [UI Testing Infrastructure in Avito - Vladislav Alexeev](https://vimeo.com/292738016) 32 | - [Understanding code signing: x509 and Apple - Marin Usalj](https://vimeo.com/235055677) 33 | - [Mobile Continuous Integration at SoundCloud - Vincent Garrigues](https://vimeo.com/148602000) 34 | - [DevOps in the iOS world - Piet Brauer](https://vimeo.com/146752761) 35 | - [Automating Your App’s Release Process Using Fastlane (Firebase Dev Summit 2017)](https://www.youtube.com/watch?v=scfOk5SgrKU) 36 | 37 | ### Android 38 | 39 | - [DevOps on Android: From one git push to a Play Store release - Jeremie Martinez](https://www.youtube.com/watch?v=O58yq8B3shc) 40 | - [Lightweight Mobile DevOps - GCP (Cloud Next '18)](https://www.youtube.com/watch?v=24wOb22sIK0) 41 | 42 | ### Build systems 43 | - [Building iOS Apps without Xcode - iOS Conf SG 2019](https://www.youtube.com/watch?v=JRsWi8KC2Sw) 44 | - [Building Software at Google Scale: Bazel](https://www.youtube.com/watch?v=6GCDfoAOKIY) 45 | 46 | ## Slack 47 | - [Dev Productivity](https://dev-productivity.slack.com/) 48 | 49 | ## Tools 50 | 51 | ### CI 52 | - [Jenkins](https://jenkins.io) 53 | - [Travis](https://travis-ci.org) 54 | - [Buildkite](https://buildkite.com) 55 | - [TeamCity](https://www.jetbrains.com/teamcity/) 56 | - [Bamboo](https://www.atlassian.com/software/bamboo) 57 | - [Gitlab CI](https://docs.gitlab.com/ee/ci/) 58 | - [Circle CI](https://circleci.com) 59 | - [Bitrise](https://www.bitrise.io) 60 | - [Go CD](https://www.gocd.org) 61 | - [MS App Center](https://appcenter.ms) 62 | - [Azure DevOps Server](https://azure.microsoft.com/en-in/services/devops/server/) 63 | - [MacStadium](https://www.macstadium.com/) 64 | 65 | ### VCS / SCM 66 | 67 | - [Github](https://github.com) 68 | - [Gitlab](https://gitlab.com) 69 | - [Bitbucket](http://bitbucket.org) 70 | - [Azure DevOps Server](https://azure.microsoft.com/en-in/services/devops/server) 71 | - [Mercurial](https://www.mercurial-scm.org) 72 | - [Phabricator](https://www.phacility.com) 73 | - [Beanstalk App](https://beanstalkapp.com) 74 | - [PerForce](https://www.perforce.com) 75 | - [SVN - subversion](https://subversion.apache.org) 76 | - [AWS CodeCommit](https://aws.amazon.com/codecommit) 77 | 78 | ### Toolkit or Libraries 79 | 80 | - [Fastlane](https://fastlane.tools) 81 | - [Gradle](http://gradle.org) 82 | - [Danger](https://danger.systems) 83 | - [Tuist](https://tuist.io) 84 | - [Code Climate](https://codeclimate.com) 85 | - [Genymotion](https://www.genymotion.com) 86 | - [Buck](https://buck.build) 87 | - [Bazel](https://bazel.build) 88 | - [CMake](https://cmake.org) 89 | - [Ansible](https://www.ansible.com) 90 | - [Anka](https://veertu.com/) 91 | 92 | ### Devices Farm 93 | 94 | - [Test Lab](https://firebase.google.com/docs/test-lab) 95 | - [Amazon Device Farm](https://aws.amazon.com/device-farm) 96 | - [MS App Center](https://visualstudio.microsoft.com/app-center/) 97 | - [Genymotion](https://www.genymotion.com) 98 | - [Samsung Remote Test Lab](https://developer.samsung.com/rtlLanding.do) 99 | - [Perfecto](https://www.perfecto.io) 100 | - [SauceLabs](https://saucelabs.com) 101 | --------------------------------------------------------------------------------