-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Wow. This project is amazing. 👏 👏 👏
Is is possible to include unique step ids in the expanded plan, so that step outputs in includes: template?
As a motivating example... https://github.com/peter-evans/create-or-update-comment recommends a two-step workflow to find and update a PR comment:
- name: Find Comment
uses: peter-evans/find-comment@v1
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: Build output
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v1
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
Build output
${{ steps.build.outputs.build-log }}
edit-mode: replaceHere steps.fc.outputs.commend-id and steps.id.outputs.build-log are used in template expansions to pass step outputs into the resulting comment. This would be an ideal application of actions-includes, because you may want to run a few templated actions each outputting a different comment. This is a bit hard though, because you don't have access to unique ids per step.
I've done a workaround, where each unique required step is a different input variable of the form:
name: build
description: Build target and post comment.
inputs:
target:
required: True
build-id:
required: True
comment-id:
required: True
runs:
using: "includes"
steps:
- id: ${{ inputs.build-id }}
run: build ${{ inputs.target }}
- id: ${{inputs.comment-id}}
uses: peter-evans/find-comment@v1
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: Build output ${{ inputs.target }}
- uses: peter-evans/create-or-update-comment@v1
with:
comment-id: ${{ steps[inputs.comment-id].outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
Build output ${{ inputs.target }}
${{ steps[inputs.build-id].outputs.stdout }}
edit-mode: replaceHowever this feels a little clunky as the includer needs to specify a bunch of unique step ids like:
jobs:
build:
- name: base
includes: /build
with:
target: base
build-id: build-base
comment-id: build-base
- name: app
includes: /build
with:
target: app
build-id: build-app
comment-id: build-app
- name: app2
includes: /build
with:
target: app2
build-id: build-app2
comment-id: build-app2Not too crazy, but am I missing some logic that would allow me to express these unique ids and access their outputs in the expanded workflow?