On November 7th, DeNA's test night event in Tokyo welcomed Viktor Benei (CTO) and Hendrik Haandrikman (VP of Growth) of Bitrise to hold a keynote about Bitrise. Topics included how Bitrise started, where we are now, some tips and tricks to get started, plus some light troubleshooting.
https://testnight.connpass.com/event/103064/
1. Bitrise: Workflows,
Integrations and More
Viktor Benei, CTO
ViktorBenei
Hendrik Haandrikman, VP of Growth
HHaandr
CI/CD Test Night #1, Tokyo | 7 Nov 2018
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
3. Agenda
1. Introduction to Bitrise
Our history
Basic onboarding and the project scanner
2. Workflows
The how and why of workflows
The workflow editor
3. Steps and integrations
Most popular steps and how to use them
Chuck Norris + Slack and Deploygate: Creating your own step
4. Troubleshooting
iOS code signing
Locating artifacts
Attaching artifacts to the builds
Reliable Android Espresso/UI tests
5. Announcement and Q&A
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
4. Enabling mobile app
developers to do their
best work
What do we do?
Bitrise automates
mobile app integration,
testing and deployment
to make developers
more consistent, faster
and freeing up their
time and talents for the
work that matters.
Bitrise Founding
Founded in 2014 by app
development agency
alumni, looking to
improve their own
process. Y Combinator
backed with $ 3.5M in
funding.
By the numbers
Used by:
* Over 20% of the
Fortune Global 500
* 50% of mobile unicorn
startups
Over 10M builds to date
and doubling in size
every 9 months
Headquarters
Bitrise is headquartered
in Budapest, Hungary,
where a team of 30+
developers work
tirelessly to improve our
platform
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
5. The Bitrise
Team
30+ people, featuring
support-, tooling-,
backend- and
frontend engineers,
plus multiple (tech)
writers, marketers and
more.
We’re hiring:
www.bitrise.io/jobs
6. From Bitfall
to YC
Bitrise was previously
Bitfall, a Budapest
based mobile app
development and
services agency.
There, after
experiencing the
headaches of other
CI solutions, Bitrise
was born.
Bitrise was part of
Y-Combinator’s W17
class.
7. Bitrise and
Unicorns
Many of the world’s
most highly valued
startups use Bitrise
to maximize
developer efficiency,
minimize time
wasted onboarding
and ensure that
developer time is
spent on tasks that
bring the company a
competitive
advantage
8. Bitrise and
Japan
Japan is our #3 market worldwide, but on track to be #2 early 2019.
Over 20% of our first 1.000 sign-ups originated there and today, most of the conversations
about Bitrise take place in Japan
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
9. Basic Onboarding
Scanner is open source:
https://github.com/bitrise-core/bitrise-init
Used in the Step:
https://github.com/bitrise-steplib/steps-project-scanner
Used in the plugin:
https://github.com/bitrise-core/bitrise-plugins-init
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
10. The How and Why of Workflows
What are Bitrise workflows?
• A workflow defines what to do when you do a build,
test, deploy, etc.
• A series of Steps, environment variables and other
configs
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
18. Generic File
Storage
Any kind of file (up to
5MB)
Utility files like
Google Play deploy
Service Account
JSON file
Upload the file &
specify a variable (ID),
steps can use that
environment variable
as the download
URL
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
19. Env Vars
Env Vars are part of
the config, do not
store secrets here
App Env Vars
available in all
Workflows
Env Vars can be used
in step inputs
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
20. Env Vars
Workflow Specific
Env Vars available in
the specified
workflow
As well as every
workflow chained
after that workflow
https://devcenter.bitrise.io/bitrise-cli/
workflows/#chaining-workflows-and-
reusing-workflows
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
21. Secrets
Will be filtered out
from the logs
Not exposed to Pull
Requests by default
Can be used in Steps’
Sensitive Inputs
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
23. Triggers
Specify what should
happen when
Order is
top-to-bottom, first
match selects the
workflow
Wildcard * is
supported
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
24. Stack
“More information”
links to system
report
Per-workflow stack
selection
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
25. Stack
New Stack added
when new Xcode
version available
Latest version of
major versions kept
for ~2.5 years
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
26. bitrise.yml
YAML representation
of the config
Changing the YAML
changes the value on
the UI and vice versa,
both edit the same
underlying config
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
27. bitrise.yml
Unlimited power!
E.g. time limit for steps
https://devcenter.bitrise.io/bitr
ise-cli/step-timeout/
run_if: false to disable a step -
https://devcenter.bitrise.io/tips
-and-tricks/disable-a-step-by-
condition/#disable-a-step
Specifying brew and apt
dependencies via `deps` -
https://devcenter.bitrise.io/tips
-and-tricks/install-additional-t
ools/#advanced-option-use-d
eps-in-bitriseyml
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
28. YAML diff
See what changed
Select the last
successful build and
check the diff
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
29. YAML diff
See what changed
Select the last
successful build and
check the diff
Restore directly from
the diff view
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
30. Chuck Norris + Slack
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
32. Steps
1. Flexibility
Email with Mailgun
Deploy to Amazon S3
2. Community
Chuck Norris
DeployGate
Yarn
About 50% of all steps!
3. Create your own Step!
Generate it with the Bitrise CLI
https://devcenter.bitrise.io/bitrise-cli/create-your-own-step/
How to use it before publishing
https://devcenter.bitrise.io/bitrise-cli/steps/#special-step-sources
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
33. Most common questions/issues
• iOS Code Signing
• Locating artifacts
• Attaching artifacts to the builds
• Reliable Android Espresso/UI tests
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
34. iOS code signing
codesigndoc
You need the development
certificate and provisioning
profile even for App Store
signing
Use our codesigndoc open
source tool
Analyses the project and
collects signing files from your
Mac
Guide:
https://devcenter.bitrise.io/code-signing/ios-code-signin
g/collecting-files-with-codesigndoc/
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
35. iOS Auto
Provisioning
Step analyses the project
during the build
Connects to Apple Developer
Portal, generates the right
profile(s) and downloads them
Needs the certificate (private
key) - codesigndoc can be
used for getting that!
Guide:
https://devcenter.bitrise.io/code-signing/ios-code-signin
g/ios-auto-provisioning/
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
36. Access Build
Artifacts
Open the Build’s page
Click “Apps & Artifacts”
To install iOS app open it from
iOS Mobile Safari - bitrise
checks whether the device is
compatible
Android APK can also be
installed from there
Public Install Page can be
enabled - send the URL to your
testers
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
37. Attach
artifacts to
the build
Use the Deploy to
Bitrise.io step
Either move the file
into
$BITRISE_DEPLOY_D
IR
Or change the path
input
You can add multiple
steps
Guide:
https://devcenter.bitrise.io/tips-and-tri
cks/attach-any-file-to-build/
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
38. Reliable Android
tests
Using Firebase Test Lab in just
a few clicks!
You get video and screenshots
of the test!
Guide:
https://devcenter.bitrise.io/testing/device-testing-for-an
droid/
Blog:
https://blog.bitrise.io/introducing-solid-and-snappy-virt
ual-device-testing-for-android
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
39. Reliable Android
tests
Robo test results Instrumentation test results
Follow Bitrise @bitrise - Tweet along with #cicd_test_night
41. Localized
Docs
Thanks to you, the
Japanese Bitrise
community, our most-
read documentation,
including howto’s and
troubleshooting
guides are now
available in Japanese.
Going forward, we’re
aiming for Japanese
localization for every
high-impact
documentation
42. Community
Support
Contributors
We’re committing to
ongoing support for
Japanese developers
that want to contribute
to Bitrise, either through
code/integrations,
how-to's or localization
Ambassadors
Japanese developers are
the first to get access to
perks, exposure and
support, in exchange for
writing and talking
about Bitrise through
our new Bitrise
ambassador program
Events
Going forward, we’re
committed to attend
and/or sponsor major
Japanese developer
events at least once a
quarter
43. Follow Bitrise @bitrise - Tweet along with #cicd_test_night
日本での採用開始!
Budapest, HU
Growth (internship)
Tokyo, JP
Community support
(contract)