Flex External release assets

Live inventory of Flex app and robot OS artifacts published to S3/CloudFront. Showing the 5 most recent versions per manifest. Generated 2026-07-20 15:09:56 UTC.

Build job to URL map

Flex assets are uploaded by GitHub Actions in opentrons (app) and oe-core (robot OS). Each successful run writes versioned artifacts under predictable S3 prefixes, then updates the channel manifests below.

Component Workflow S3 prefix Manifest Per-build layout
App (external)opentrons/.github/workflows/app-test-build-deploy.yamls3://builds.opentrons.com/app/releases.json, alpha*.yml, beta*.yml, latest*.ymlOpentrons-v<ver>-<platform>-b<build>.*
Robot OS (external)oe-core/.github/workflows/build-ot3-actions.ymls3://builds.opentrons.com/ot3-oe/ot3-oe/releases.jsonot3-oe/<github.run_id>/ot3-fullimage.tar

See the channel section below for robot vs app manifest authority. Flex robots read ot3-oe/releases.json for on-robot updates. CloudFront for builds.opentrons.com is not invalidated by CI; run just invalidate-cloudfront --execute --wait manually after external app builds finish. Then run just verify-release-assets to confirm the tag's manifests and artifacts.

External channel

App host: builds.opentrons.com
App manifest: https://builds.opentrons.com/app/releases.json
Robot manifest: https://builds.opentrons.com/ot3-oe/releases.json

Robot OS: releases.json is the source of truth for on-robot updates. Flex robots on 9.1.1+ read the productionV2 key; older entries remain under production. Desktop app: channel YAML files (latest.yml, latest-mac.yml, latest-linux.yml, and prerelease YAMLs) are authoritative; electron-updater reads those directly. App releases.json is not the app updater source of truth: a CloudFront edge function parses the latest stable semver from production and routes latest* requests to matching stable build artifacts. The tables below are still useful for humans and release validation. Updater YAML overwrite: beta desktop publishes overwrite alpha.yml as well as beta.yml; alpha publishes update alpha.yml only. Tag push order can differ from publish order. When both channels need builds, publish beta before alpha so alpha.yml ends on the alpha build.

Electron-updater channel YAMLs

Channel YAMLURLVersionRelease dateArtifact
alpha.ymlhttps://builds.opentrons.com/app/alpha.yml9.1.2-alpha.02026-07-15T17:27:23.936ZOpentrons-v9.1.2-alpha.0-win-b71978.exe
alpha-mac.ymlhttps://builds.opentrons.com/app/alpha-mac.yml9.1.2-alpha.02026-07-15T17:49:04.900ZOpentrons-v9.1.2-alpha.0-mac-b71978.zip
alpha-linux.ymlhttps://builds.opentrons.com/app/alpha-linux.yml9.1.2-alpha.02026-07-15T17:21:26.471ZOpentrons-v9.1.2-alpha.0-linux-b71978.AppImage
beta.ymlhttps://builds.opentrons.com/app/beta.yml9.1.12026-07-13T16:06:03.859ZOpentrons-v9.1.1-win-b71873.exe
beta-mac.ymlhttps://builds.opentrons.com/app/beta-mac.yml9.1.12026-07-13T16:24:22.054ZOpentrons-v9.1.1-mac-b71873.zip
beta-linux.ymlhttps://builds.opentrons.com/app/beta-linux.yml9.1.12026-07-13T15:59:46.619ZOpentrons-v9.1.1-linux-b71873.AppImage
latest.ymlhttps://builds.opentrons.com/app/latest.yml9.1.12026-07-13T16:06:03.859ZOpentrons-v9.1.1-win-b71873.exe
latest-mac.ymlhttps://builds.opentrons.com/app/latest-mac.yml9.1.12026-07-13T16:24:22.054ZOpentrons-v9.1.1-mac-b71873.zip
latest-linux.ymlhttps://builds.opentrons.com/app/latest-linux.yml9.1.12026-07-13T15:59:46.619ZOpentrons-v9.1.1-linux-b71873.AppImage

Recent app releases (releases.json)

VersionBuild id(s)RevokedAssets
9.1.2-alpha.0b71978no
9.1.1b71873no
9.1.1-alpha.3b71695no
9.1.1-alpha.2b71675no
9.1.1-alpha.1b71610no

Recent robot OS releases (releases.json)

VersionManifest keyBuild jobFull imageSystemVersion fileNotes
9.1.2-alpha.0productionV2run 29435792146full imagesystemVERSION.jsonnotes
9.1.1productionV2run 29264254977full imagesystemVERSION.jsonnotes
9.1.1-alpha.3productionV2run 28898001431full imagesystemVERSION.jsonnotes
9.1.1-alpha.2productionV2run 28889101193full imagesystemVERSION.jsonnotes
9.1.1-alpha.1productionV2run 28805218870full imagesystemVERSION.jsonnotes