Version must be > 0.0.0 and unique. Deleted versions cannot be reused.
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"- apikey — Capgo API key
- 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 — External bundle URL
- ivSessionKey — IV + session key
- encryptedChecksum — Signature for external bundle
- keyV2 — Path to private signing key
- keyDataV2 — Private key content
- tus — Use TUS protocol
- tusChunkSize — Chunk size in bytes
- zip — Legacy zip upload
- delta — Differential updates
- deltaOnly — Only delta updates
- encryptPartial — Encrypt delta files
- noCodeCheck — Skip code checks
- ignoreMetadataCheck — Skip metadata check
- ignoreChecksumCheck — Skip checksum check
- minUpdateVersion — Minimal version required to update
- autoMinUpdateVersion — Auto set from native packages
- disableBrotli — Disable brotli compression
- noBrotliPatterns — Comma-separated globs to exclude
- s3Region
- s3Apikey
- s3Apisecret
- s3Endpoint
- s3BucketName
- s3Port
- noS3Ssl
- 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"
- 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- 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"