[GH-ISSUE #2227] Composite Action Required property is missing: shell #1048

Closed
opened 2026-03-01 21:48:30 +03:00 by kerem · 1 comment
Owner

Originally created by @phoolish on GitHub (Feb 23, 2024).
Original GitHub issue: https://github.com/nektos/act/issues/2227

Bug report info

act

Command used with act

act pull_request

Describe issue

My workflow runs fine locally with act, but when I run it remotely I get this error Required property is missing: shell. This is a reference to run steps requiring shell key to be set in composite actions. Metadata Docs. act seems to ignore the requirement and works as expected whether it is set or not.

- name: Set Greeting
      run: echo "Hello $INPUT_WHO_TO_GREET."
      shell: bash

No response

Workflow content

# .github/actions/run-in-image/action.yaml
---
name: 'Run command in compose image'
description: 'Run Bash Command in docker compose container and output tests results (when necessary)'
inputs:
  bash-command:
    description: 'Bash to command to run in the container'
    required: true
    type: string
  docker-service:
    default: app
    description: 'Docker compose service to run the command on'
    required: false
    type: string
  test-report-path:
    default: ''
    description: 'If a report path is provided, output test-report to github actions'
    type: string

runs:
  using: 'composite'
  steps:
    - name: Run BASH command on ${{ inputs.docker-service }}
      run: |
        docker compose run ${{ inputs.docker-service }} bash -c "${{ inputs.bash-command }}"
    - name: Test Report
      uses: mikepenz/action-junit-report@v4
      if: ${{ inputs.test-report-path != '' && github.actor != 'nektos/act' && (success() || failure()) }}
      with:
        name: test-results
        report_paths: ${{ inputs.test-report-path }}
# .github/workflows/test.yaml
---
name: Test Image

on:
  pull_request:
    branches:
      - develop
  push:
    branches:
      - develop

env:
  COMPOSE_FILE: ${{ github.actor == 'nektos/act' && 'compose.test.yaml' || 'compose.test.linux.yaml' }}
  IMAGE_TAG: ga-${{ github.event.number }}

permissions:
  id-token: write
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  bundle_check:
    name: Bundle Check
    runs-on: ubuntu-latest
    env:
      COMPOSE_PROJECT_NAME: bundle_check
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - uses: ./.github/actions/run-in-image
        with:
          bash-command: "bundle check --verbose"
          docker-service: app_init

Relevant log output

None

Additional information

No response

Originally created by @phoolish on GitHub (Feb 23, 2024). Original GitHub issue: https://github.com/nektos/act/issues/2227 ### Bug report info ```plain text act ``` ### Command used with act ```sh act pull_request ``` ### Describe issue My workflow runs fine locally with act, but when I run it remotely I get this error `Required property is missing: shell`. This is a reference to run steps requiring `shell` key to be set in composite actions. [Metadata Docs](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runsstepsshell). act seems to ignore the requirement and works as expected whether it is set or not. ``` - name: Set Greeting run: echo "Hello $INPUT_WHO_TO_GREET." shell: bash ``` ### Link to GitHub repository _No response_ ### Workflow content ```yml # .github/actions/run-in-image/action.yaml --- name: 'Run command in compose image' description: 'Run Bash Command in docker compose container and output tests results (when necessary)' inputs: bash-command: description: 'Bash to command to run in the container' required: true type: string docker-service: default: app description: 'Docker compose service to run the command on' required: false type: string test-report-path: default: '' description: 'If a report path is provided, output test-report to github actions' type: string runs: using: 'composite' steps: - name: Run BASH command on ${{ inputs.docker-service }} run: | docker compose run ${{ inputs.docker-service }} bash -c "${{ inputs.bash-command }}" - name: Test Report uses: mikepenz/action-junit-report@v4 if: ${{ inputs.test-report-path != '' && github.actor != 'nektos/act' && (success() || failure()) }} with: name: test-results report_paths: ${{ inputs.test-report-path }} # .github/workflows/test.yaml --- name: Test Image on: pull_request: branches: - develop push: branches: - develop env: COMPOSE_FILE: ${{ github.actor == 'nektos/act' && 'compose.test.yaml' || 'compose.test.linux.yaml' }} IMAGE_TAG: ga-${{ github.event.number }} permissions: id-token: write contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: bundle_check: name: Bundle Check runs-on: ubuntu-latest env: COMPOSE_PROJECT_NAME: bundle_check steps: - name: Checkout uses: actions/checkout@v3 - uses: ./.github/actions/run-in-image with: bash-command: "bundle check --verbose" docker-service: app_init ``` ### Relevant log output ```sh None ``` ### Additional information _No response_
kerem 2026-03-01 21:48:30 +03:00
Author
Owner

@github-actions[bot] commented on GitHub (Aug 22, 2024):

Issue is stale and will be closed in 14 days unless there is new activity

<!-- gh-comment-id:2303328543 --> @github-actions[bot] commented on GitHub (Aug 22, 2024): Issue is stale and will be closed in 14 days unless there is new activity
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/act#1048
No description provided.