Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Как перестать говорить "Ой, я забыл"
Search
Vadym
May 10, 2019
Programming
84
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Как перестать говорить "Ой, я забыл"
Vadym
May 10, 2019
More Decks by Vadym
See All by Vadym
Building...Please, wait
degterev
0
68
Date and time
degterev
0
51
Other Decks in Programming
See All in Programming
Performance Optimization With LLMs
xleitix
0
130
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
320
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
140
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
Domain-Driven Transformation
hschwentner
2
2.3k
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
220
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
510
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Automating Front-end Workflow
addyosmani
1369
210k
Believing is Seeing
oripsolob
1
240
Become a Pro
speakerdeck
PRO
31
6.3k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
GraphQLとの向き合い方2022年版
quramy
50
15k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Facilitating Awesome Meetings
lara
57
7.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
My Coaching Mixtape
mlcsv
0
360
Unsuck your backbone
ammeep
672
58k
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