💊 #1 - The Power of Pipeline as Code for a Mobile Developer
This is a series of little articles in form of pills that I mention episodes of my professional day by day.
Man, come here, please
For sure. What’s up?
The pipeline configuration needs to be updated. One argument is missing for the correct execution of the command that generates the splitted APK’s.
Hum, ok. Please, fix yourself. I’m going to have a lunch.
That happened. It’s real. And it was great that happened. Let me see: it’s a mobile developer that will works with a delivery pipeline. And he will be enable to do that.
Firstly, because the pipeline will be described inside the target solution. That is, the mobile developer can change the pipeline if he wants. This because the pipeline will be described as code. A pipeline as code, like this way:
- image: circleci/android:api-27-alpha
name: Download Dependencies
command: ./gradlew androidDependencies
name: Run Code Static Analysis
command: ./gradlew :dashboard-data:ktlint lintDevDebug
name: Run Unit Tests
command: ./gradlew :dashboard-data:testDebugUnitTest :feature-dashboard:testDebugUnitTest
name: Generate Code Coverage
command: ./gradlew jacocoFullTestReport
name: Send Code Coverage to Codecov
command: bash <(curl -s https://codecov.io/bash)
name: Install graphviz
command: sudo apt-get update; sudo apt-get install graphviz
name: Generate Project Dependency Graph
command: ./gradlew projectDependencyGraphGenerator
name: Generate release APK's
command: ./gradlew assembleRelease
Developers talk technically through code. The responsible by pipeline is talking with the developer by code. They understand each other. The team work did not stop.
So, the mobile developer put the missing argument that is necessary in script of this way:
./gradlew assembleRelease -PsplitApk
Commit, push, run CI (continuous integration) stages and… GOOD! There are the splitted APK’s, with the updated script in version control repository together with the target solution:
If you liked, clap on the left side. This helps in spreading the article to other readers. 👏
- The pipeline is part of the solution as a whole, not a separate entity with no connection
- To track the changes on pipeline during the timeline
- The pipeline can be shared among several solutions, because it is a common file.