Skip to main content
The Determine Delivery Targets action analyzes your AL-Go projects and determines which delivery targets (AppSource, Storage, etc.) are configured, along with any required context secrets.

Usage

- uses: microsoft/AL-Go/Actions/[email protected]
  id: determine
  with:
    projectsJson: '[".", "Project1"]'
    checkContextSecrets: 'true'

Inputs

shell
string
default:"powershell"
Shell in which you want to run the action (powershell or pwsh)
projectsJson
string
default:"[\".\"]"
Projects to investigate in JSON array formatExamples:
  • '["."]' - Current directory only
  • '["Project1", "Project2"]' - Specific projects
checkContextSecrets
boolean
default:"false"
Check whether context secret exists?When enabled, the action will verify that required secrets are available.

Outputs

DeliveryTargetsJson
string
An array of Delivery Targets in compressed JSON formatContains information about each configured delivery target including type and settings.
ContextSecrets
string
A comma-separated list of Context Secret names usedLists all secret names that are required for the identified delivery targets.

Example Workflow

jobs:
  determine:
    runs-on: ubuntu-latest
    outputs:
      deliveryTargetsJson: ${{ steps.determine.outputs.DeliveryTargetsJson }}
      contextSecrets: ${{ steps.determine.outputs.ContextSecrets }}
    steps:
      - uses: actions/checkout@v4
      
      - name: Determine Delivery Targets
        id: determine
        uses: microsoft/AL-Go/Actions/[email protected]
        with:
          projectsJson: '["."]'
          checkContextSecrets: 'true'
  
  deliver:
    needs: determine
    if: needs.determine.outputs.deliveryTargetsJson != '[]'
    runs-on: ubuntu-latest
    strategy:
      matrix:
        deliveryTarget: ${{ fromJson(needs.determine.outputs.deliveryTargetsJson) }}
    steps:
      - name: Deliver to ${{ matrix.deliveryTarget }}
        uses: microsoft/AL-Go/Actions/[email protected]
        with:
          deliveryTarget: ${{ matrix.deliveryTarget }}
          artifacts: '.artifacts'

Multi-Project Example

- name: Determine Delivery Targets for Multiple Projects
  id: determine
  uses: microsoft/AL-Go/Actions/[email protected]
  with:
    projectsJson: '["App1", "App2", "App3"]'
    checkContextSecrets: 'true'

- name: Display required secrets
  run: |
    echo "Required secrets: ${{ steps.determine.outputs.ContextSecrets }}"
This action is typically used before running the Deliver action to identify all configured delivery targets.
When checkContextSecrets is enabled, ensure all required secrets are configured in your repository or organization settings.

Build docs developers (and LLMs) love