se2016 ios oleksandr yefremov "continuously delivering mobile project"
TRANSCRIPT
![Page 1: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/1.jpg)
Continuously Delivering Mobile Projecthow to make CI/CD for Mobile easier
Oleksandr Yefremov Mobile Lead at glomex GmbH
![Page 2: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/2.jpg)
$ ./scripts/makeProject.sh --release --patch
![Page 3: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/3.jpg)
Pull Request CI build
Run tests
Code change
Manual QA
Changelog
Sign Off
Prepare resources
git / github flow
strict PR naming convention
Slack #ci room notification
Fabric (Crashlytics)
Automatic generation
./bumpVersion.sh --minor
fastlane deliver / supply
Publish Artifact
S3 / Stores
![Page 4: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/4.jpg)
Code change
git / github flow
❕Pull Request❕
master develop feature release, hotfix
master featurevs
![Page 5: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/5.jpg)
Code change
git / github flow
Pull Request
strict PR naming convention
![Page 6: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/6.jpg)
Pull Request
strict PR naming convention
$ curl https://api.github.com/repos/org/repo/pulls/52 2>/dev/null | jq '.title';
"[VVS-262] Implement Ad pause/resume functionality."
* thanks to StackOverflow
Changelog
Automatic generation
![Page 7: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/7.jpg)
Code change
git / github flow
Pull Request
strict PR naming convention
CI build
Slack #ci room notification
![Page 8: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/8.jpg)
CI build
Slack #ci room notification
![Page 9: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/9.jpg)
Pull Request CI buildCode change
git / github flow
strict PR naming convention
Slack #ci room notification
Run tests Manual QA
Fabric (Crashlytics)
![Page 10: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/10.jpg)
Run tests Manual QA
Fabric (Crashlytics)
Deploy an app automatically to Fabric Beta using Travis-CI https://gist.github.com/ChrisXu1221/23e05c6fe469c6a8aaf6
* thanks to ChrisXu1221
![Page 11: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/11.jpg)
Pull Request CI build
Run tests
Code change
Manual QA
git / github flow
strict PR naming convention
Slack #ci room notification
Fabric (Crashlytics)
Sign Off
./bumpVersion.sh --minor
![Page 12: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/12.jpg)
Sign Off
./bumpVersion.sh --minor
$ ./scripts/bumpVersion.sh --patch|--minor|--major|--exact "1.0.1"
git commit -m "Upgraded version to #{build_number}" git tag -a "#{build_number}" && git push --tags
# iOS - push podspec as well push_framework_podspec version: build_number
![Page 13: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/13.jpg)
Pull Request CI build
Run tests
Code change
Manual QA
Changelog
Sign Off
git / github flow
strict PR naming convention
Slack #ci room notification
Fabric (Crashlytics)
Automatic generation
./bumpVersion.sh --minor
Prepare resources
fastlane deliver / supply
![Page 14: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/14.jpg)
Prepare resources
fastlane deliver / supply
Android iOS
https://github.com/Triple-T/gradle-play-publisher
![Page 15: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/15.jpg)
Pull Request CI build
Run tests
Code change
Manual QA
Changelog
Sign Off
git / github flow
strict PR naming convention
Slack #ci room notification
Fabric (Crashlytics)
Automatic generation
./bumpVersion.sh --minor
Prepare resources
fastlane deliver / supply
Publish Artifact
S3 / Stores
![Page 16: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/16.jpg)
Publish Artifact
S3 / Stores
apply plugin: 'maven-publish' repositories { maven { url "s3://$s3_bucket/$s3_path" credentials(AwsCredentials) { accessKey s3_access_key secretKey s3_secret_key } }}
Android
![Page 17: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/17.jpg)
Publish Artifact
S3 / Stores
# fastlanes3( access_key: ENV["S3_ACCESS_KEY"], secret_access_key: ENV["S3_SECRET_KEY"], bucket: ENV["S3_BUCKET"], # IPA or ZIP file with framework ipa: "#{zip_file}", region: "eu-west-1", path: path, upload_metadata: false )
iOS
![Page 18: SE2016 iOS Oleksandr Yefremov "Continuously delivering mobile project"](https://reader034.vdocuments.net/reader034/viewer/2022042723/58eca70b1a28abab3a8b46e9/html5/thumbnails/18.jpg)
Pull Request CI build
Run tests
Code change
Manual QA
Changelog
Sign Off
Prepare resources
git / github flow
strict PR naming convention
Slack #ci room notification
Fabric (Crashlytics)
Automatic generation
./bumpVersion.sh --minor
fastlane deliver / supply
Publish Artifact
S3 / Stores