Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,49 @@ jobs:
exit 1
fi

summary-path:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- name: "Test summary-path"
id: test-summary-path
uses: ./
with:
version: latest
verb: core
args: version
summary-path: "/tmp/custom-summary.md"
- name: "Check custom summary file"
run: |
if [[ -f "/tmp/custom-summary.md" ]] && [[ -s "/tmp/custom-summary.md" ]]; then
echo "Custom summary file exists and has content"
echo "Content preview:"
head -10 "/tmp/custom-summary.md"
else
echo "Custom summary file missing or empty"
exit 1
fi

enable-github-summary:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- name: "Test enable-github-summary=true (default)"
id: test-github-summary-enabled
uses: ./
with:
version: latest
verb: core
args: version
- name: "Check github summary enabled"
run: |
if [[ -n "${GITHUB_STEP_SUMMARY}" ]]; then
echo "GitHub step summary was written (default behavior)"
else
echo "GitHub step summary not written when it should have been"
exit 1
fi

nocall:
runs-on: "ubuntu-latest"
steps:
Expand Down
26 changes: 14 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,20 @@ By setting the version to `latest`, this action will install the latest version

### All `with:` input parameter options

| Key | Description | Required | Default |
| --------------- | ----------------------------------------------------------------- | -------- | ------------------ |
| `version` | Dagger Version. Use semver vX.Y.Z or 'latest' | true | 'latest' |
| `commit` | Dagger Dev Commit (overrides `version`) | false | '' |
| `dagger-flags` | Dagger CLI Flags | false | '--progress plain' |
| `verb` | CLI verb (call, run, download, up, functions, shell, query) | false | 'call' |
| `workdir` | The working directory in which to run the Dagger CLI | false | '.' |
| `cloud-token` | Dagger Cloud Token | false | '' |
| `module` | Dagger module to call. Local or Git | false | '' |
| `args` | Arguments to pass to CLI | false | '' |
| `call` | Arguments to pass to CLI (Alias for args with verb:call) | false | '' |
| `shell` | Arguments to pass to CLI (Alias for args with verb:shell) | false | '' |
| Key | Description | Required | Default |
| ------------------------------- | ----------------------------------------------------------------- | -------- | ------------------ |
| `version` | Dagger Version. Use semver vX.Y.Z or 'latest' | true | 'latest' |
| `commit` | Dagger Dev Commit (overrides `version`) | false | '' |
| `dagger-flags` | Dagger CLI Flags | false | '--progress plain' |
| `verb` | CLI verb (call, run, download, up, functions, shell, query) | false | 'call' |
| `workdir` | The working directory in which to run the Dagger CLI | false | '.' |
| `cloud-token` | Dagger Cloud Token | false | '' |
| `module` | Dagger module to call. Local or Git | false | '' |
| `args` | Arguments to pass to CLI | false | '' |
| `call` | Arguments to pass to CLI (Alias for args with verb:call) | false | '' |
| `shell` | Arguments to pass to CLI (Alias for args with verb:shell) | false | '' |
| `summary-path` | File path to write the job summary to | false | '' |
| `enable-github-summary` | Whether to automatically write a GitHub Actions job summary | false | 'false' |

### All output variables

Expand Down
55 changes: 55 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@ inputs:
description: "Function and arguments for dagger shell"
required: false
default: ""
summary-path:
description: "File path to write the job summary"
required: false
default: ""
enable-github-summary:
description: "Whether to write summary to GITHUB_STEP_SUMMARY"
required: false
default: "false"
outputs:
output:
description: "Job output"
Expand Down Expand Up @@ -115,6 +123,9 @@ runs:
shell: bash
env:
INPUT_MODULE: ${{ inputs.module }}
VERB: ${{ steps.assemble.outputs.verb }}
CMD: ${{ inputs.args || inputs.call || steps.assemble.outputs.script }}
SCRIPT: ${{ steps.assemble.outputs.script }}
run: |
tmpout=$(mktemp)
tmperr=$(mktemp)
Expand Down Expand Up @@ -142,3 +153,47 @@ runs:
if [[ -n "$trace_url" ]]; then
echo "traceURL=$trace_url" >> "$GITHUB_OUTPUT"
fi

# Generate job summary content
summary_content(){
echo -e "## Command\n"
echo '```bash'
cmd="dagger $VERB $CMD"
if [[ -n "$INPUT_MODULE" ]]; then
echo -e -E "DAGGER_MODULE=\"$INPUT_MODULE\" $cmd"
else
echo -e -E "$cmd"
fi
echo '```'
if [[ -n "$SCRIPT" ]]; then
echo -e "### Script\n"
echo '```bash'
cat "$SCRIPT"
echo -e "\n"
echo '```'
fi

echo -e "## Dagger trace\n"
if [[ -n "$trace_url" ]]; then
echo "[$trace_url]($trace_url)"
else
echo "No trace available. To setup: [https://dagger.cloud/traces/setup](https://dagger.cloud/traces/setup)"
fi

echo -e "## Dagger version\n"
echo '```bash'
dagger version || true
echo '```'

echo -e "---\n"
}

# Write to custom summary path if specified
if [[ -n "${{ inputs.summary-path }}" ]]; then
summary_content > "${{ inputs.summary-path }}"
fi

# Write to GitHub step summary if enabled (default: true)
if [[ "${{ inputs.enable-github-summary }}" == "true" ]]; then
summary_content > "${GITHUB_STEP_SUMMARY}"
fi