Continuous Integration

Authenticate and upload signed releases without browser interaction.

Edit
- name: Authenticate NitroPush
  run: >-
    nitropush login
    --token "$NITROPUSH_API_TOKEN"
    --org "$NITROPUSH_ORG_ID"
    --user "$NITROPUSH_USER_ID"
 
- name: Upload release
  run: |
    nitropush release upload \
      --project "$NITROPUSH_PROJECT_ID" \
      --environment prod \
      --runtime-version "$APP_VERSION" \
      --label "$GITHUB_SHA" \
      --bundle-path ./dist-ios

Signed uploads

Store the PEM content in your CI secret manager and write it to a temporary file:

SIGNING_KEY_FILE="$(mktemp)"
trap 'rm -f "$SIGNING_KEY_FILE"' EXIT
printf '%s' "$NITROPUSH_BUNDLE_SIGNING_KEY_PEM" > "$SIGNING_KEY_FILE"
 
nitropush release upload \
  --project "$NITROPUSH_PROJECT_ID" \
  --environment prod \
  --runtime-version "$APP_VERSION" \
  --label "$RELEASE_LABEL" \
  --bundle-path ./dist-ios \
  --signing-key "$SIGNING_KEY_FILE"

Never pass PEM content directly as a flag value; process listings and CI logs may expose it.

On this page