This action wraps the dpctl installation into a simple step. Use it to deploy or manage your DeployPulse apps via Github Actions events.
![]()
For production deployments, pin dpctl to a specific version to avoid unexpected behavior in edge releases.
name: Publish to DeployPulse
on: [push]
jobs:
deploy:
name: Deploy to DeployPulse
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: deploypulseio/setup-dpctl@v1
with:
setup-node: true
- name: Get Target Version from package.json
id: app_version
run: echo "target_version=$(node -p 'require("./package.json").version')" >> "$GITHUB_OUTPUT"
- name: Release iOS Update to DeployPulse
run: |
dpctl release-react \
"$APP_NAME" ios \
-d "$DEPLOYMENT" \
--mandatory \
--targetBinaryVersion "$TARGET_VERSION" \
--description "CodePush Release for Version $TARGET_VERSION" \
--disabled false
env:
DEPLOYPULSE_ACCESS_KEY: ${{ secrets.DEPLOYPULSE_ACCESS_KEY }}
APP_NAME: ${{ vars.DEPLOYPULSE_IOS_APP_NAME }}
DEPLOYMENT: ${{ vars.DEPLOYPULSE_DEPLOYMENT_NAME }}
TARGET_VERSION: ${{ steps.app_version.outputs.target_version }}
- name: Release Android Update to DeployPulse
run: |
dpctl release-react \
"$APP_NAME" android \
-d "$DEPLOYMENT" \
--mandatory \
--targetBinaryVersion "$TARGET_VERSION" \
--description "CodePush Release for Version $TARGET_VERSION" \
--disabled false
env:
DEPLOYPULSE_ACCESS_KEY: ${{ secrets.DEPLOYPULSE_ACCESS_KEY }}
APP_NAME: ${{ vars.DEPLOYPULSE_ANDROID_APP_NAME }}
DEPLOYMENT: ${{ vars.DEPLOYPULSE_DEPLOYMENT_NAME }}
TARGET_VERSION: ${{ steps.app_version.outputs.target_version }}- uses: deploypulseio/setup-dpctl@v1
with:
version: "v1.0.0"- uses: deploypulseio/setup-dpctl@v1
with:
node-version: "23"- uses: deploypulseio/setup-dpctl@v1
with:
source: "git" See the dpctl GitHub project for more information on using dpctl.
DEPLOYPULSE_ACCESS_KEY - Required. The token to use for authentication. You can create a token by running dpctl login or dpctl access-key add "CI/CD Workflow" if you're already logged in.