Code Monkey home page Code Monkey logo

cdkit's Introduction

CDKit

CDKit is a DevOps framework that helps to deploy mobile apps (iOS and Android) to the app stores (iTunes and Google Play).

Example of the workflow with the CI Remote for Go app

It supports the cross-platform Axway / Appcelerator Titanium framework, and it's built on top of this software:

  • GO.CD as a CI/CD server
  • Fastlane to manage the certificates, assets and deployment to the app stores
  • Appium for the UI automation tests
  • ImageMagick for creating app stores screenshots design
  • Ansible to manage the installation and updates of the GO.CD agent(s)
  • SonarQube for code quality and security check (optional)

Description of the components

CDKit uses different GIT repositories to configure and handle the end-to-end deployment to the app stores.

cdkit.gocd

This repository stores the initial configuration of the GO.CD server, the different pipelines and environment.

To efficiently manage and maintain the GO.CD agent(s), CDKit use Ansible.

It allows you to automatically deploy a new version of Xcode (without the App Store), updates the Android SDK, installs the latest version of Java JRE/JDK, etc.

cdkit.releasescripts

This repository is the core of the build and deployment process.

There are scripts for generate IPA file from XArchive, create app icon with the build number, change the version of the app based on the pipeline version, create a changelog between two builds (based on GIT tags), etc.

cdkit.certificates

This repository is maintained automatically by Fastlane and store the iOS mobile provisioning profiles, developer and production certificates and everything is encrypted.

It's need for easy management of your profiles and certificates and all the GO.CD agents. No more manual update from Xcode on each agent!

cdkit.appstore

At the moment, this repository store the versionCode for Android.

The versionCode is updated (by a commit) every time you deploy a new version to the Google Play.

It will be replaced soon by another Fastlane command to get the latest versionCode from the Google Play.

cdkit.appstore.assets

CDKit uses this repository to store the app stores assets downloaded by Fastlane from iTunes and the Google Play.

That includes:

  • App name
  • Description
  • Categories
  • Changelogs
  • Screenshots

It's the last addition to the CDKit framework.

This repository contains the CLI to generate the app stores screenshots.

It support themes and different devices:

  • iPhone X (5.8")
  • iPhone 8 Plus (5.5")
  • iPad Pro (12.9")
  • Google Pixel (phone)
  • Nexus 9 (tablet 10.0")
  • Nexus 7 2013 (tablet 7.0")

More devices are on the way:

  • iPhone Xr
  • iPhone Xs
  • iPhone Xs Max
  • iPhone 11
  • iPhone 11 Pro
  • iPhone 11 Pro Max
  • iPad Pro 12.9 3rd gen
  • Google Pixel 3
  • Google Pixel C

CDKit uses Appium for the UI test automation.

This repository contains a small framework to launch Appium server, build your Titanium app with a different SDK version (optional), Genymotion or an iOS simulator, run your scripts in a different configuration (devices, iOS or Android version)!

I use it also to take the screenshots that I will use later with the App Stores Design Automation tool to create the App Store and Google Play screenshots.

It's based on the Appcelerator Appium Tests repository (not maintained anymore).

cdkit.titanium.app

Sample Axway / Appcelerator Titanium project that will be used to test CDKit.

The Appium UI automation scripts, screenshots design, etc. will be based on this mobile app project.

How to install CDKit

To use this framework, you will need to clone this GIT repositories:

TODO

  • Deploy my existing scripts and create the README for each repositories
  • Convert the remaining Bash scripts to Python or Golang (cdkit.releasescripts)
  • Create a Docker image for the GO.CD server with the initial setup to run quickly the first pipelines

cdkit's People

Contributors

timoa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.