Capgo Bundle Upload
September 23, 2025 ยท View on GitHub
โก๏ธ Get Instant updates for your App with Capgo
Missing a feature? Weโll build the plugin for you ๐ช
Version must be > 0.0.0 and unique. Deleted versions cannot be reused.
Quick start
name: Upload bundle
on:
push:
branches: [main]
jobs:
upload:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build web assets
run: npm ci && npm run build
- name: Upload to Capgo
uses: ./
with:
apikey: ${{ secrets.CAPGO_API_KEY }}
appId: com.example.app
path: ./dist
channel: production
bundle: 1.2.3
message: "CI release from ${GITHUB_SHA}"
tus: "true"
delta: "true"
versionExistsOk: "true"
Inputs
Required
- apikey โ Capgo API key
Common
- appId โ App id (positional)
- path โ Folder to upload (defaults to
webDirincapacitor.config) - channel โ Channel to link to
- bundle โ Bundle version string
- message โ Release notes
- link โ External link
External bundle / encryption
- external โ External bundle URL
- ivSessionKey โ IV + session key
- encryptedChecksum โ Signature for external bundle
Signing (v2)
- keyV2 โ Path to private signing key
- keyDataV2 โ Private key content
Upload behavior
- tus โ Use TUS protocol
- tusChunkSize โ Chunk size in bytes
- zip โ Legacy zip upload
- delta โ Differential updates
- deltaOnly โ Only delta updates
- encryptPartial โ Encrypt delta files
Checks & metadata
- noCodeCheck โ Skip code checks
- ignoreMetadataCheck โ Skip metadata check
- ignoreChecksumCheck โ Skip checksum check
Min-update policy
- minUpdateVersion โ Minimal version required to update
- autoMinUpdateVersion โ Auto set from native packages
Compression
- disableBrotli โ Disable brotli compression
- noBrotliPatterns โ Comma-separated globs to exclude
S3
- s3Region
- s3Apikey
- s3Apisecret
- s3Endpoint
- s3BucketName
- s3Port
- noS3Ssl
Misc
- bundleUrl โ Print bundle URL
- noKey โ Send clear update
- displayIvSession โ Log IV/session key
- autoSetBundle โ Write bundle back to capacitor.config.json
- dryUpload โ Dry run, no file upload
- packageJson โ Path to package.json
- nodeModules โ Path to node_modules
- deleteLinkedBundleOnUpload โ Delete linked bundle in channel
- versionExistsOk โ Exit success if bundle already exists
- selfAssign โ Allow devices to auto-join this channel
- timeout โ Upload timeout in seconds
Booleans must be strings: "true" or "false"
Example: External bundle URL
- name: Upload external bundle
uses: ./
with:
apikey: ${{ secrets.CAPGO_API_KEY }}
appId: com.example.app
channel: beta
external: https://my-cdn.com/app/1.2.3.tar.gz
encryptedChecksum: ${{ secrets.EXTERNAL_SIGNATURE }}
ivSessionKey: ${{ secrets.IV_SESSION_KEY }}
bundle: 1.2.3
Example: S3-backed upload
- name: Upload via S3
uses: ./
with:
apikey: ${{ secrets.CAPGO_API_KEY }}
appId: com.example.app
path: ./dist
channel: production
s3Region: eu-west-1
s3Endpoint: https://s3.my-provider.com
s3BucketName: capgo-bundles
s3Apikey: ${{ secrets.S3_KEY }}
s3Apisecret: ${{ secrets.S3_SECRET }}
noS3Ssl: "false"
tus: "true"
delta: "true"
