Skip to main content

Default Workflows

When you add a new project on bitrise.io, we create initial Pipelines and Workflows for you. These are called default Pipelines and Workflows. A default Pipeline consists of default Workflows.

You can use these to run your tests or create installable binaries such as IPAs or APKs. Feel free to modify the default Pipelines and Workflows to suit your needs.

Default Pipelines

We also create default Pipelines: Default Pipelines.

Default Workflows for an iOS projectClick to copy link

For a new iOS project, Bitrise automatically generates several Workflows. You can customize these Workflows or create new ones based on them.

Workflow IDWorkflow summaryWorkflow description
run_testsRun your project’s tests.The Workflow clones your Git repository, installs Node Version Manager (NVM) and select the Node version, restores cached node_modules dependencies, runs your tests using the package manager appropriate to your project and saves the cache.
build_for_testingBuilds your Xcode project ready for testing.The Workflow clones your Git repository, builds your app ready for testing, apportions tests into each test shard and deploys the app plus tests to Bitrise so they can be used in subsequent Workflows. This Workflow is part of a default Pipeline.
test_without_buildingTests your iOS app without needing to rebuild it.Retrieves the app and tests from the preceding Workflow in a Pipeline and tests compiled bundles using Xcode’s test_without_building command. This Workflow is part of a default Pipeline.
archive_and_export_appRun your Xcode tests and create an IPA file to install your app on a device or share it with your team.The Workflow clones your Git repository, caches and installs your project’s dependencies if there are any, runs your Xcode tests, and exports an IPA file from the project.
buildBuilds your Xcode project. This Workflow is generated only if the project scanner didn't find any tests configured in your Xcode project.The Workflow clones your Git repository, caches and installs your project’s dependencies if there are any, and builds your project. It uses Xcode's build for testing action.

Default Workflows for an Android projectClick to copy link

For a new Android project, Bitrise automatically generates three new Workflows. You can customize these Workflows or create new ones based on them.

Workflow IDWorkflow summaryWorkflow description
run_testsRun your Android unit tests and get the test report.The Workflow clones your Git repository, caches your Gradle dependencies, installs Android tools, runs your Android unit tests and saves the test report.
build_apkRun your Android unit tests and create an APK file to install your app on a device or share it with your team.The Workflow clones your Git repository, installs Android tools, sets the project’s version code based on the build number, runs Android lint and unit tests, builds the project’s APK file and save it.
run_instrumented_testsRun your Android instrumented tests with test sharding and get a test report.The Workflow clones your Git repository, caches your Gradle dependencies, installs Android tools, boots up an Android emulator to run your Android instrumented tests and saves the test report. This Workflow is part of a default Pipeline which utilizes parallelism: it runs multiple copies of the Workflow to shard instrumented tests.

Default Workflows for a Node.js projectClick to copy link

Bitrise generates one default Workflow for a Node.js project: a Workflow to run your project's lint and test scripts. You can customize this Workflow or create new ones based on it.

Workflow IDWorkflow summaryWorkflow description
run_testsRun your project’s tests.The Workflow clones your Git repository, selects and installs the Node version, installs the npm packages, and, depending on the available scripts in your package.json file, runs the lint and test scripts. The Workflow also supports node_modules caching for better performance. The lint and test steps use npm or Yarn depending on which package manager was detected. If neither lock file is present, the user selects the package manager interactively during setup.

Default Workflows for a Kotlin Multiplatform projectClick to copy link

Bitrise generates three default Workflows for a Kotlin Multiplatform project: one to run tests, one to build an Android app, and one to build an iOS app.

Workflow IDWorkflow summaryWorkflow description
run_testsRun your project’s tests.The Workflow clones your Git repository, runs the test Gradle task using the Gradle Unit Test Step, and caches your Gradle task outputs.
android_buildBuilds and signs an Android app from your Kotlin project.The Workflow clones your Git repository, builds your app using the Android Build Step, signs it with Android Sign, and caches your Gradle task outputs. It produces a downloadable APK file.
ios_buildBuilds and signs an iOS app from your Kotlin project.The Workflow clones your Git repository, builds and signs your app using the Xcode Archive & Export for iOS Step, and caches your Gradle task outputs. It produces a downloadable IPA file.

Default Workflows for a Java projectClick to copy link

The project scanner can detect Java projects and create default Workflows for them. A new project is considered a generic Java project if:

  • It uses Gradle (the code contains the usual Gradle configuration files and a Gradle Wrapper script in the project root directory) and it doesn't use Android or Kotlin Multiplatform required dependencies.
  • It uses Maven with a POM.xml project configuration file in the root directory, and has a Maven Wrapper script.

For a generic Java project, Bitrise generates default Workflows based on the build tool.

Workflow IDWorkflow summaryWorkflow description
run_testsRun your projects tests.The Workflow clones your Git repository and runs tests by using the Run Gradle Tests Step which runs the test Gradle task.
Workflow IDWorkflow summaryWorkflow description
run_testsRun your projects tests.The Workflow clones your Git repository and runs tests by using a Script step, running the Maven Wrapper’s test command: ./mvnw test.

Default Workflows for a Ruby projectClick to copy link

Workflow IDWorkflow summaryWorkflow description
run_testsRun your project’s tests.The Workflow clones your Git repository and restores your gem cache with the gem-{{ checksum "Gemfile.lock" }} caching key. It installs dependencies depending on signals in your codebase: - If MySQL gem is detected, it installs system dependencies. - If Bundler is detected, it installs dependencies with bundle install. If a relation database gem is detected, it performs database setup: db:create db:schema:load. If a test framework or a Rakefile is detected, the Workflow runs your tests. The Workflow always saves the Ruby gem cache and includes the Deploy to Bitrise.io Step.

Default Workflows for a Python projectClick to copy link

For Python, a single run_tests Workflow is generated. The included Steps depend on the detected package manager and whether pytest was found in the project.

Workflow IDWorkflow summaryWorkflow description
run_testsRun your project’s tests.The Workflow clones your Git repository and installs Python based on the detected version. If no version is detected, the stack's default Python version is used. Installs dependencies: the exact command used depends on the detected package manager. If pytest is detected, the Workflow runs your tests.

Default Workflows for a Flutter projectClick to copy link

For Flutter projects, Bitrise creates two default Workflows: a run_tests Workflow and a build_app Workflow.

The exact Steps included in these default Workflows depend on the project type. However, the main goals of the two Workflows are the same, regardless of project type:

Workflow IDWorkflow summaryWorkflow description
run_testsRun your project’s tests.The Workflow clones your Git repository, installs Flutter with the Flutter Installer Step, runs Restore Dart cache to pull your Dart cache. It runs: - The Flutter Test Step when there is a test/ directory in the project. - The Flutter Analyze Step when there is no test/ directory in the project. After running the tests, it saves the Dart cache and runs the Deploy to Bitrise.io Step to deploy any artifacts.
build_appBuilds both the iOS and the Android app from the Flutter project.This Workflow is only generated when the project has an iOS or Android sub-project. For web projects, this Workflow is not generated. The Workflow clones your Git repository, installs your code signing certificate for the iOS project, installs Flutter, runs the Flutter Analyze Step. It also runs the Flutter Test Step when a test/ directory is present. It builds the app with the Flutter Build Step. It builds all detected platforms.