CI/CD

GitHub Actions

Uploading build artifacts from your GitHub Actions workflows

Create API token

To upload builds using this CI integration you'll need to create an application specific API token, via the standard steps.

Add Buildstash action

Install Buildstash action

Go to the Buildstash action page on the GitHub Marketplace.

GitHub Marketplace page

You can copy and paste the provided code into your workflow yaml script.


Add API key to your 'Actions secrets' for the repository

Take the Buildstash application API key you previously created, and store it as a "Actions" secret.

GitHub Actions secrets

Note, as you'll be using an application-specific Buildstash API key (required to upload builds for particular app) you likely want to store this secret on your GitHub repository level, rather than workspace.


Tweak input values accordingly

Update the action inputs to pass in your project and run specific values. See "Inputs" table below for more detail.


See your builds appear in Buildstash!

Successful GitHub Actions runs will now be sending your builds into Buildstash. Welcome to artifact management actually designed for apps.

Successful action run


Inputs

A breakdown of all required and optional inputs for the GitHub action.

Input NameRequired?Description
api_keyYesApplication specific API Key, should be stored and pass in as a secret
structureYesStructure type. Either `file` (for single file build) or `file+expansion` (for a primary build file with a single expansion file, i.e. apk + obb)
primary_file_pathYesPath to the primary file to upload
expansion_file_pathNoPath to an expansion file to be paired with primary (optional)
version_component_1_majorYesMajor version component
version_component_2_minorYesMinor version component
version_component_3_patchYesPatch version component
version_component_extraNoExtra version component (optional). Pre-release label like 'beta' or 'alpha'
version_component_metaNoMeta version component (optional). Can be used to add additional metadata to your version, such as data 2025.01.01)
custom_build_numberNoAllows a flexible format custom build number if you have one. (Optional)
labelsNoArray of labels to attach to build (will be created if they do not already exist)
architecturesNoArray of architectures this build supports (must be supported by platform)
ci_pipelineNoCI pipeline name
ci_run_idNoCI run ID
ci_run_urlNoCI run URL
ci_build_durationNoCI build duration
vc_host_typeNoVersion control host type
vc_hostNoVersion control host
vc_repo_nameNoRepository name
vc_repo_urlNoRepository URL
vc_branchNoBranch name
vc_commit_shaNoCommit SHA
vc_commit_urlNoCommit URL
platformYesPlatform slug (see list here for reference)
streamYesStream - the exact name of the stream on your app this build will be sent to
notesNoBuild notes (optional)

Outputs

A breakdown of outputs the GitHub action provides.

Output NameDescription
build_idBuildstash ID associated with the newly created build
pending_processingWhether the build is pending additional processing on server (typically iOS or Android builds)
build_info_urlURL to view the build information on Buildstash
download_urlURL to download the build on Buildstash (requires authentication in workspace and permission to access build)

Buildstash on GitHub Marketplace