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
51
Как перестать говорить "Ой, я забыл"
Vadym
May 10, 2019
Tweet
Share
More Decks by Vadym
See All by Vadym
Building...Please, wait
degterev
0
52
Date and time
degterev
0
27
Other Decks in Programming
See All in Programming
Ruby Function Composition
bkuhlmann
1
330
Node.js v22 で変わること
yosuke_furukawa
PRO
9
2.9k
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
230
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
530
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
120
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
8
4k
Semantic search with Django and pgvector
pauloxnet
0
240
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
910
Elm Form Validation
bkuhlmann
0
510
VS Code をプロダクトにどう取り込むか
onomax
1
360
2 週間で Twitter Bot を作ってみた
contour_gara
0
310
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
Visualization
eitanlees
136
14k
Designing the Hi-DPI Web
ddemaree
276
33k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
274
13k
Web development in the modern age
philhawksworth
202
10k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Illustrated Children's Guide to Kubernetes
chrisshort
31
46k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Statistics for Hackers
jakevdp
789
220k
The Language of Interfaces
destraynor
151
23k
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