Skip to content
Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

🚀 Digital.ai Deploy GitHub Actions

This GitHub Action automates the creation, publishing, and deployment of packages on Digital.ai Deploy. It facilitates seamless integration between your GitHub repository and Digital.ai Deploy, streamlining your deployment management processes.

✨ Features

  • Create: Generate a new DAR package from a specified manifest file.
  • Publish: Upload a DAR package to Digital.ai Deploy.
  • Deploy: Deploy the package to a specified environment.

📦 Example Usage

name: Create Publish and Deploy Packageon: [push]jobs:
build:
runs-on: ubuntu-lateststeps:
- name: Create Publish and Deploy Packageid: deployuses: digital-ai/github-actions-deploy@v5.0.0with:
serverUrl: ${{ vars.SERVERURL }}username: ${{ secrets.USERNAME }}password: ${{ secrets.PASSWORD }}manifestPath: '/your-manifest.xml'action: 'create_publish_deploy'outputPath: '/outputdar'versionNumber: '1.0.0'packageName: 'appForAction-1.0.0.dar'environmentId: 'Environments/envForAction'rollback: 'true'

⚠️ Important Note

During execution, this action creates a temporary directory named tmp-dai in the working directory. This folder is used internally for processing the deployit-manifest.xml file. If the action is used in multiple steps within the same job, the tmp-dai folder will be deleted and recreated in each step. This ensures clean isolation and avoids conflicts between steps.

🛠️ Supported actions

  1. create
  2. publish
  3. deploy
  4. create_publish
  5. publish_deploy
  6. create_publish_deploy

🔧 Inputs

🔁 Common

NameDescriptionRequiredDefault
serverUrlURL of your Digital.ai Deploy server (e.g., https://deploy.example.com).YesN/A
usernameUsername for Digital.ai Deploy authentication.YesN/A
passwordPassword for Digital.ai Deploy authentication.YesN/A
actionSpecifies the operation(s). One of: create, publish, deploy, create_publish, publish_deploy, create_publish_deployNocreate_publish_deploy
maxTransientRetriesThe maximum number of retries when encountering transient errors.No5

🧱 1. Action = create

Generates a new DAR package from a manifest file.

NameDescriptionRequiredDefault
manifestPathPath to the manifest file (relative to the repository root).
Example: '/deployit-manifest.xml'or '/manifests/my-service.xml'.
YesN/A
outputPathDirectory where the generated DAR will be stored (relative to the workspace).
Example: '/outputdar'.
YesN/A
versionNumber(Optional) Version string to inject into the manifest before packaging.
Example: '1.0.0'.
NoN/A
packageName(Optional) Name of the DAR package to create (must end with .dar).
Example: 'myapp-1.0.0.dar'.
Default is package.dar.
Nopackage.dar

Outputs :

  • darPackagePath (string): Relative path to the generated DAR file, e.g., outputdar/myapp-1.0.0.dar.

📤 2. Action = publish

Uploads a pre-existing DAR package to Digital.ai Deploy.

NameDescriptionRequiredDefault
darPackagePathRelative path to the DAR package that will be published.
Example: 'outputdar/myapp-1.0.0.dar'.
YesN/A

Outputs:

  • deploymentPackageId (string): The unique ID assigned by Digital.ai Deploy to the published package. e.g., Applications/appForAction/1.0.

🚀 3. Action = deploy

Deploys a previously published package into a specified environment.

NameDescriptionRequiredDefault
deploymentPackageIdThe ID of the DAR package that was returned by the publish action (or manually obtained from Digital.ai Deploy). Example: 'Applications/appForAction/1.0'.YesN/A
environmentIdThe target environment in which to deploy.
Example: 'Environments/Production'.
YesN/A
rollback(Optional) Whether to automatically trigger a rollback if the deployment fails.
Accepts string values: 'true' or 'false'.
Nofalse

Outputs:

  • deploymentTaskId (string): ID of the deployment task created by Digital.ai Deploy. e.g., 677f5322-31ce-43fe-8758-6730c734ba75.
  • rollbackTaskId (string): If a rollback is invoked, this will contain the ID of the rollback task; otherwise, this output is empty. e.g., 847f5322-31ce-43fe-8758-6730c734ba58.

🧰 4. Action = create_publish

Equivalent to running create and then publish in sequence.

Inputs (all required for create + publish):

NameDescriptionRequiredDefault
manifestPathPath to manifest file.YesN/A
outputPathDirectory for storing the generated DAR.YesN/A
versionNumber(Optional) Version string to set in the manifest.NoN/A
packageName(Optional) DAR filename (must end with .dar).Nopackage.dar

(The Action itself takes care of passing the generated DAR into the publish operation.)

Outputs:

  • darPackagePath (string): Path to the DAR created.
  • deploymentPackageId (string): ID returned after publishing that DAR.

🔗 5. Action = publish_deploy

Equivalent to running publish and then deploy in sequence.

Inputs (all required for publish + deploy):

NameDescriptionRequiredDefault
darPackagePathRelative path to the existing DAR to publish.YesN/A
environmentIdTarget environment for deployment.YesN/A
rollback(Optional) 'true' to trigger rollback on failure, 'false' otherwise.Nofalse

(The published package ID is automatically passed into the deploy phase.)

Outputs:

  • deploymentPackageId (string): ID of the published DAR.
  • deploymentTaskId (string): ID of the newly created deployment task.
  • rollbackTaskId (string): ID of the rollback task if triggered; otherwise blank.

🛠️ 6. Action = create_publish_deploy

Runs create → publish → deploy in one continuous flow.

Inputs (all required for create + publish + deploy):

NameDescriptionRequiredDefault
manifestPathPath to manifest file.xml`.YesN/A
outputPathDirectory where the DAR will be generated.YesN/A
versionNumber(Optional) Version string to set in the manifest.NoN/A
packageName(Optional) Desired DAR filename (must end in .dar).Nopackage.dar
environmentIdTarget environment ID.YesN/A
rollback(Optional) Set to 'true' to automatically roll back on failure.Nofalse

Outputs:

  • darPackagePath (string): Path of the created DAR file.
  • deploymentPackageId (string): ID of the published DAR.
  • deploymentTaskId (string): ID of the deployment task.
  • rollbackTaskId (string): ID of any rollback task if triggered; otherwise empty.

🗂️ Summary of Inputs & Outputs

Action ModeRequired InputsOptional InputsOutputs
createserverUrl, username, password, action=create, manifestPath, outputPathversionNumber, packageNamedarPackagePath
publishserverUrl, username, password, action=publish, darPackagePathdeploymentPackageId
deployserverUrl, username, password, action=deploy, deploymentPackageId, environmentIdrollbackdeploymentTaskId, rollbackTaskId
create_publishserverUrl, username, password, action=create_publish, manifestPath, outputPathversionNumber, packageNamedarPackagePath, deploymentPackageId
publish_deployserverUrl, username, password, action=publish_deploy, darPackagePath, environmentIdrollbackdeploymentPackageId, deploymentTaskId, rollbackTaskId
create_publish_deployserverUrl, username, password, action=create_publish_deploy, manifestPath, outputPath, environmentIdversionNumber, packageName, rollbackdarPackagePath, deploymentPackageId, deploymentTaskId, rollbackTaskId

📋 Job Summary and Deployment UI Links

As part of the GitHub Actions workflow, this action automatically generates structured summaries in the GitHub Actions job summary page. These summaries provide clear visibility into each step performed during the deployment process.

✅ Summary Overview

  • 📦 Package Creation Summary
    Includes the manifest path, package name, version number, and where the DAR file was created.

  • 📤 Package Publish Summary
    Shows the DAR file path and the deploymentPackageId after publishing.

  • 🚀 Deployment Summary
    Lists the deploymentPackageId, target environmentId, deploymentTaskId, and rollbackTaskId (if rollback was triggered).
    Also provides a direct link to the Digital.ai Deploy UI for viewing deployment or rollback details.

Example project

An example repository using this action : github-actions-deploy-demo

About

This GitHub Action automates the creation, publishing, and deployment of packages on Digital.ai Deploy. It facilitates seamless integration between your GitHub repository and Digital.ai Deploy, streamlining your deployment management processes.

Topics

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages