$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Как перестать говорить "Ой, я забыл"
Search
Vadym
May 10, 2019
Programming
0
73
Как перестать говорить "Ой, я забыл"
Vadym
May 10, 2019
Tweet
Share
More Decks by Vadym
See All by Vadym
Building...Please, wait
degterev
0
60
Date and time
degterev
0
41
Other Decks in Programming
See All in Programming
Media Capture and Streams: W3C仕様と現場での知見
nowaki28
0
130
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
4.1k
AIコーディングエージェント(Manus)
kondai24
0
120
Microservices rules: What good looks like
cer
PRO
0
550
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
120
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
210
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
110
目的で駆動する、AI時代のアーキテクチャ設計 / purpose-driven-architecture
minodriven
11
3.9k
sbt 2
xuwei_k
0
190
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
18k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
130
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
690
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Thoughts on Productivity
jonyablonski
73
5k
What's in a price? How to price your products and services
michaelherold
246
12k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
How to Ace a Technical Interview
jacobian
280
24k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
A better future with KSS
kneath
240
18k
Transcript
Как перестать говорить «Ой, я забыл» Вадим Дегтерев
None
Поговорим про • Что за проблема то? • Пути решения
• Как мы решили в итоге • Вопросы и вот это все
• Посмотреть pull requests • Отправить билд qa • Поставить
нужный пробельчик • Написать коммент в джиру • Посмотреть почему упали тесты Задач много а я один
Нам нужна автоматизация
Какие есть варианты? • Fastlane • Jenkins pipeline • Danger
Fastlane • Подходит для решения наших задач • Не идеален
потому что нужен для Deploy • Deploy должен работать всегда и везде
Jenkins pipeline
Jenkins pipeline Jenkinsfile node { stage('Build') { // } stage('Test')
{ // } stage('Deploy') { // } }
Jenkins pipeline
Jenkins pipeline Jenkinsfile node { stage('Build') { // } stage('Test')
{ // } stage('Deploy') { // } stage('Report') { def payload = JsonOutput.toJson([text : text, channel : channel, username : "JenkinsCI", attachments: attachments ]) sh "curl -X POST --data-urlencode \'payload=${payload}\' ${slackURL}" } }
Github pull request builder Environment Variables The plugin makes some
very useful environment variables available. • ghprbActualCommit • ghprbActualCommitAuthor • ghprbActualCommitAuthorEmail • ghprbPullDescription • ghprbPullId • ghprbPullLink • ghprbPullTitle • ghprbSourceBranch • ghprbTargetBranch • ghprbCommentBody • sha1
Jira comment Jenkinsfile node { stage('Build') { // } stage('Test')
{ // } stage('Deploy') { // } stage('Report') { def payload = ... def jiraTicket = jiraTicket(env.ghprbPullTitle) sh "curl -X POST --data-urlencode \'payload=${payload}\' ${jiraURL}/browse/$ {jiraTicket}" } }
Что с безопасностью? • Есть безопасное хранилище для ключей •
Не нужно добавлять ключи в код • Ключи не попадут в логи
Jenkins pipeline • Документация? • Модули, плагины, прям конструктор •
Все пишется на Groovy • Можно просто вызывать скрипт из консоли
Danger
Dangerfile failure "Please add labels to this PR" if bitbucket_cloud.pr_labels.empty?
message "Welcome, Kotya" if bitbucket_cloud.pr_author == “Kotya_Kolbaskin” warn "This PR does not have any assignees yet." if bitbucket_cloud.pr_json[:reviewers].length == 0
Не забывайте обновить тесты tests_updated = !git.modified_files.grep(/Tests/).empty? if has_app_changes &&
!tests_updated warn(“Test wasn’t updated”) end
Swiftlint swiftlint.lint_files
Swiftlint
Xcode summary
Ресурсы • https://fastlane.tools • https://danger.systems • https://github.com/danger/awesome-danger
Контакты https://www.facebook.com/vadym.degterev.5 Telegram: @degterev Twitter: @degterev