Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
62
Date and time
degterev
0
43
Other Decks in Programming
See All in Programming
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
450
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
380
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
130
CSC307 Lecture 13
javiergs
PRO
0
310
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
370
SourceGeneratorのマーカー属性問題について
htkym
0
150
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
370
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
170
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
150
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
300
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
400
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.2k
Featured
See All Featured
Marketing to machines
jonoalderson
1
5k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
660
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
120
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
240
Color Theory Basics | Prateek | Gurzu
gurzu
0
230
WCS-LA-2024
lcolladotor
0
470
Optimizing for Happiness
mojombo
378
71k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How STYLIGHT went responsive
nonsquared
100
6k
Designing for Performance
lara
611
70k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
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